微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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
    });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐