3

我想让 jquery validate 忽略默认文本。
我检查默认文本的方法是检查 element.value == 元素 alt 文本

这是我的代码,但无论是空白、默认文本还是任何其他文本,它都会返回无效:

$.validator.addMethod("notDefaultText", function(value) 
{
    if($(this).val()==$(this).attr('alt'))
              return false;

});

        rules: {
        Name: "required notDefaultText",
        Email: "required notDefaultText email"
    },
4

3 回答 3

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"
            }
        }

    });
于 2012-03-07T13:15:03.633 回答
0

您可能在不采用该属性的元素上使用 alt alt 用于图像等而不是输入字段!因此浏览器不会接受它。

尝试使用诸如“data-default”之类的属性或任何带有“data-*”的属性来存储这些值。

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

于 2011-02-05T00:31:07.233 回答
0

HTML5 支持将占位符作为标记的一部分。您可以使用 jQuery 来处理其他浏览器。

在http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html中介绍了一种很好的方法来做到这一点

于 2011-02-05T00:27:30.313 回答