Jquery validate验证表单时只验证第一个input的问题

Jquery validate验证表单时多个name相同的元素只验证第一个的问题

jquery.validate插件中name属性相同(如name=“name”)时验证的bug
当name属性相同,则validate只校验第一个name的控件,其余input则不校验

使用jquery.validate插件http://jqueryvalidation.org/
当节点的name相同时候,脚本特意忽略剩余节点,导致所有相关节点的errMsg都显示在第一个相关节点上。
这个bug在动态生成表单时候影响比较大。

解决方法:

  1. 修改input的name, 动态生成不同的name
    curClick.find(".data-class-property").attr("name", "in_required" + Math.round(Math.random() * 1000));
  1. 使用id进行校验
    //校验
    $("#class-data-form").validate({
        rules: {
            name: {
                required: true,
            },
            id:{
                required: true,
            }
            code: {
                required: true,
            },
            type: {
                required: true,
            }
        }, messages:{
            name:{required:'必填字段不能为空'}
        },
        focusCleanup: true
    });
上一篇:[LeetCode] 946. Validate Stack Sequences


下一篇:开源后端数据校验插件Validate.Net,类似Validate.js