Jquery验证:如何忽略占位符文本(在默认/空白时产生错误)

时间:2011-02-04 23:44:41

标签: jquery default validation placeholder required

我想让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"
    },

3 个答案:

答案 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- *'的任何属性来存储这些值。

有时我会发现一些浏览器会读取/操纵某些具有意外行为的属性。