使用react写了一个基础组件input ,使用地方很多,有的地方需要检验只能输入数字,有的地方需要检验只能输入汉字,那么怎么做表单检验比较好?
使用react写了一个基础组件input ,使用地方很多,有的地方需要检验只能输入数字,有的地方需要检验只能输入汉字,那么怎么做表单检验比较好?
私以为,表单验证分为实时验证和非实时验证。那么触发表单验证的时机控制就很重要了。如果使用了react来写组件,那么在input发生onChange事件时往往需要setState,这时如果触发表单验证,就是实时验证了。如果想做到非实时验证,例如用户在点击提交时再提示用户错误信息的话,就要加逻辑判断以确定是否触发表单验证了。
当然是在父组件给个参数阿
<Input testNum={true} />
在子组件里面去写这个方法,如果给了这个props或者这个props=true的时候就去执行这个方法
例如
//在onChange的方法changeValue中
changeValue(){
if(this.props.testNum){
//用你的正则去匹配这个(e.target.value)
}
}
类似于这样
3 回答1.8k 阅读✓ 已解决
4 回答1.7k 阅读✓ 已解决
1 回答1.6k 阅读✓ 已解决
4 回答1.6k 阅读✓ 已解决
2 回答2.4k 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
可以参考一下蚂蚁金服的组件库ant-design里面的Form,是基于react-component的form和form-validation,这是我见过的最好用,对业务兼容性最好的表单组件了。