使用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进行验证