layui表单 lay-verify的使用
需求是选择通过直接提交,不通过要填写不通过原因且必填。
我的代码是这么处理的:
不通过原因表单先写在html里,display为none,当选择不通过时,让表单不通过原因display:block. 显示隐藏的思路没错,就是在表单选择通过提交时,会校验不通过原因表单,实际是不需要校验的。
第一种思路是,动态修改lay-verify,表单通过,值为空,表单不通过,值required
html里不能获取 通过不通过值,所以行不通。浏览layui官方文档表单验证部分发现,lay-verify支持自定义,这就好办了。
只要在自定义函数中获取选择 通过不通过的值来判断,或者不通过原因显示时返回校验提示即可
parent.form.verify({
reason: function(val){
var display = $('#noPassReason', window.parent.document).css("display");
if(display=="block" && val == ''){
return '必填项不能为空'
}
}
})
其实就两点:单个表单元素可以设置自定义校验,display为none的表单会被layui自动校验,如果表单不需要显示,直接设置type="hidden",表单也不会校验了
在这里附上文档地址:(https://www.layui.com/doc/modules/form.html#verify
)