考虑以下HTML:
<form id="frm">
<input type="text" id="txt" name="txt" />
<input type="submit" value="click me" />
</form>
我需要使用jQuery Validation Plugin v1.13.1和jQuery 1.7.2来针对2个不同的规则来验证文本框,因此:
$(function(){
var validator = $('#frm').validate({
errorPlacement: function (error, element) {
element.attr('title', error.text());
}
});
$.validator.addMethod('rule1', function (value, element) {
return value != null && value.length;
}, 'Rule 1 failed!');
$.validator.addMethod('rule2', function (value, element) {
return false;
}, 'Rule 2 failed!');
//Assign both rules to the text box.
$('#txt').rules('add', { rule1: true, rule2: true });
$('input[type="submit"]').click(function() {
if(!validator.form()) {
return false;
}
});
});
问题是为什么?这是关联的JSFiddle。谢谢你。
默认情况下,jQuery验证尝试从元素的title
属性中读取错误消息(如果存在)。当然,由于您要在标题中设置错误消息,因此该错误消息将永久存在。这种奇怪的行为显然现在已被弃用,不久将消失。
但是,与此同时,解决方法是ignoreTitle
在创建验证器时使用该选项:
var validator = $('#frm').validate({
ignoreTitle: true,
...
}
在这里查看小提琴:http : //jsfiddle.net/dp5pLr8x/4/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句