validate验证表单时多个name相同的元素的解决办法

使用jquery validator插件时,会碰见页面中name值相同的情况,此时因为validator验证规则默认是通过name值验证的,所以validator验证不起作用,可在页面中加入以下代码:

$(function () {
if ($.validator) {
    $.validator.prototype.elements = function () {
        var validator = this,
            rulesCache = {};
        return $([]).add(this.currentForm.elements)
        .filter(":input")
        .not(":submit, :reset, :image, [disabled]")
        .not(this.settings.ignore)
        .filter(function () {
            var elementIdentification = this.id || this.name;
            !elementIdentification && validator.settings.debug && window.console && console.error("%o has no id nor name assigned", this);
            if (elementIdentification in rulesCache || !validator.objectLength($(this).rules()))
                return false;
            rulesCache[elementIdentification] = true;
            return true;
        });
    };
 
}
 
});

然后给name值相同的节点加入id属性,此时validator会根据id进行验证

然后再加入以下代码即可:

$(function(){
  $("#myform").validate();
  $("[name=email]").each(function(){
     $(this).rules("add", {
       required: true,
       email: true,
       messages: {
         required: "请输入正确email"
       }
     });   
   });
});

 

转载于:https://www.cnblogs.com/fatTmonkey/p/10671910.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值