我使用 jquery.validate.js 来验证我们网站上的表单。今天我将验证插件的版本更新到 v 1.9,从那时起我就遇到了现场密码验证的问题。
我找到了为什么会发生这种情况,现在我正在寻找“正确”的方法来解决它。在以前的版本中,方法属性规则如下:
attributeRules: function (element) {
var rules = {};
var $element = $(element);
for (var method in $.validator.methods) {
var value = $element.attr(method);
if (value) {
rules[method] = value;
}
}
// maxlength may be returned as -1, 2147483647 (IE) and 524288 (safari) for text inputs
if (rules.maxlength && /-1|2147483647|524288/.test(rules.maxlength)) {
delete rules.maxlength;
}
return rules;
}
在 1.9 版本中,它看起来有点不同:
attributeRules: function (element) {
var rules = {};
var $element = $(element);
for (var method in $.validator.methods) {
var value;
// If .prop exists (jQuery >= 1.6), use it to get true/false for required
if (method === 'required' && typeof $.fn.prop === 'function') {
value = $element.prop(method);
} else {
value = $element.attr(method);
}
if (value) {
rules[method] = value;
} else if ($element[0].getAttribute("type") === method) {
rules[method] = true;
}
}
// maxlength may be returned as -1, 2147483647 (IE) and 524288 (safari) for text inputs
if (rules.maxlength && /-1|2147483647|524288/.test(rules.maxlength)) {
delete rules.maxlength;
}
return rules;
}
据我了解,在以前的版本中,该方法没有检查输入元素的类型属性,也没有添加“密码”验证器。在 1.9 版中,它检查元素是否具有“密码”类型并添加验证器。
问题:
如何告诉 jQuery.validator 忽略“密码”类型的输入?
谢谢