表单验证与回填以及表单常见bug解决方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了表单验证与回填以及表单常见bug解决方法相关的知识,希望对你有一定的参考价值。
参考技术A 正则验证 pattern自定义验证validator
~获取值,使用getFieldsValue(),获取出来的是所有值,数据类型为对象,需要自己结构
this.props.form.getFieldsValue()
~设置值 ,使用 this.props.form.setFieldsValue(a:"1" ) ,但是他有一个bug,数据回填较慢,导致操作的时候数据为空, 如果需要实时操作,可以把数据存在state了,然后在函数中操作
~表单提交时,页面刷新,数据消失
解决方法就是 使用 e.preventDefault();
参数e最好从提交的时候绑定this.props.form
~点击button提交表单
两种方式:
1
2
如果一个表单,有几个提交按钮,可以添加key值区分
3
两个地方联动验证
比如先输入了开始时间(验证报错),再输入结束时间,输入完结束时间需要验证开始时间,去掉开始时间验证的报错,可以使用setFilesValues(),它在赋值的时候会做验证
在LayUI表单中,有AJAX方式来提交表单吗
在LayUI表单中,有AJAX方式提交表单,在表单提交监听那里,解决方法如下:
1、layui本身内置了很多验证方法,只需要按照规则预设元素属性,就可以做到一些基本的验证。layui中预设lay-verify来提供验证,基本验证包含如下图。
2、在页面中声明元素,并使用预设元素属性设置验证,lay-verify中可以配置多个验证,多个验证之间用|来分开。声明的元素必须要放在form中。
3、编写form的提交验证事件,需要采用layui提供的内置编写方法,语法:form.on('event(过滤器值)', callback)。
4、layui内置的方法,在某些情况下,是满足不了验证需求的,这时,就需要使用到layui的自定义验证。可以自定义验证规则,通常对于比较复杂的校验。可以通过下面的方式,来添加自定义验证规则。
5、对于自定义验证规则,调用的方式和内置规则一样,直接在预设元素属性lay-verify中直接添加,layui的form会自动识别。通过图片,可以看到自定义的验证规则启用了。
参考技术A 有的form.on('submit(login)', function (data)
var datas=data.field;
var action=data.form.action;
$.ajax(
url:action,
data:datas,
type:"POST",
dataType:"json",
success:function(msg)
console.log(msg)
window.location.href="main";
,
error:function(error)
alert(error)
);
return false;
);
记住最后一句return false;一定要加上 不然不会执行ajax ,login指的是提交按钮lay-filter="login"
以上是关于表单验证与回填以及表单常见bug解决方法的主要内容,如果未能解决你的问题,请参考以下文章