动态生成form表单的input框如何添加自定义验证规则

提问 已结 2 82
沙子丶
沙子丶 2019-9-11
悬赏:50飞吻
版本:layui 2.4.5 浏览器:chorme
如题;
后台返回了一组数据,循环遍历生成了表单输入框,每个输入框返回了验证规则和提示信息,如何添加自定义验证规则,上图

回帖
  • layui自定义的规则的原理,你可以理解为是定义了一个校验的规则对象,key对应的就是规则的名称,然后value就是校验规则以及信息返回;那么我的看法是,如果你返回的是这样子的结构,实际每个需要验证的会给你验证的正则表达式,还有匹配不上的信息,那么简单的处理就是你根据返回的数据动态的去form.verify,去添加新的规则,比如form表单的filter为:'userForm',字段是'username',如果我来做,我会定义
    form.verify({
    'userForm|username': [formData[0].verification.reg, formData[0].verification.tip],
    'userForm|age': [formData[1].verification.reg, formData[1].verification.tip]
    });

    <input name="username" lay-verify="userForm|username">
    我觉得有可能是多个相同的规则很tip给你造成疑惑说怎么变成同一个,不过个人的建议是简单处理,即使一百个校验一样但是对应的字段不一样,那么关键是看它校验的字段,而非规则,这样子再根据你的form表单,甚至乎都可以不用管什么表单什么字段,你生成一个uuid之类的都可以,只要保证一点是你根据他返回的数据生成的verify的规则名称,作为字段dom的lay-verify的属性信息,然后不要跟其他的容易冲突了即可,这个才是关键点个人认为;当然了如果你想要把reg和显示信息tip重复的那些归同一类,起一个什么名称,后面你能够检测到是否已经有相同类型(reg和tip都一样)的了,那么也是可以做到通过归类来减少verify的规则数量,但是这个实现比较复杂一些,理论上也是能做到的。
    0 回复
  • 沙子丶
    2019-9-11
    @岁月小偷 大佬
    0 回复