使用react写表单组件,表单验证如果做比较好?

使用react写了一个基础组件input ,使用地方很多,有的地方需要检验只能输入数字,有的地方需要检验只能输入汉字,那么怎么做表单检验比较好?

阅读 13k
5 个回答

可以在组件内部把数字和汉字用正则匹配好,然后通过props传入不同的属性来验证各个不同的值,然后通过回调函数来做表单提交

私以为,表单验证分为实时验证和非实时验证。那么触发表单验证的时机控制就很重要了。如果使用了react来写组件,那么在input发生onChange事件时往往需要setState,这时如果触发表单验证,就是实时验证了。如果想做到非实时验证,例如用户在点击提交时再提示用户错误信息的话,就要加逻辑判断以确定是否触发表单验证了。

github上查找async-validate

当然是在父组件给个参数阿

<Input testNum={true} />

在子组件里面去写这个方法,如果给了这个props或者这个props=true的时候就去执行这个方法
例如

//在onChange的方法changeValue中
changeValue(){
    if(this.props.testNum){
        //用你的正则去匹配这个(e.target.value)
    }
}

类似于这样

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题