我想让jquery验证忽略默认文本 我检查默认文本的方法是检查element.value ==元素alt文本
这是我的代码,但无论是空白,默认文本还是任何其他文本,它都会返回无效:
$.validator.addMethod("notDefaultText", function(value)
{
if($(this).val()==$(this).attr('alt'))
return false;
});
rules: {
Name: "required notDefaultText",
Email: "required notDefaultText email"
},
答案 0 :(得分:4)
我遇到了同样的问题并以这种方式解决了......
我检查默认文本的方法是检查值==元素占位符attr。
$.validator.addMethod("notDefaultText", function (value, element) {
if (value == $(element).attr('placeholder')) {
return false;
} else {
return true;
}
});
$("yourForm").validate({
rules: {
title: { required: true,
notDefaultText: true
},
description: {
required: true,
notDefaultText: true,
minlength: 2,
maxlength: 400
}
},
messages: {
title: "Error text",
description: {
required: "Error text",
notDefaultText: "Error textp",
minlength: "Error text",
maxlength: "Error text"
}
}
});
答案 1 :(得分:0)
HTML5支持占位符作为标记的一部分。您可以使用jQuery来处理其他浏览器。
http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html
提供了一种很好的方法答案 2 :(得分:0)
你可能在一个不使用该属性的元素上使用alt是用于图像等等而不是输入字段!因此浏览器不会接受它。
尝试使用以下属性:“data-default”或带有'data- *'的任何属性来存储这些值。
有时我会发现一些浏览器会读取/操纵某些具有意外行为的属性。