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

发布于 2024-10-15 23:52:42 字数 391 浏览 5 评论 0原文

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

I'd like to make jquery validate ignore the default text.
The way I have it check for default text is to check if the element.value == the elements alt text

Here's my code, but it returns invalid no matter if its blank, default text, or any other text:

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

});

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

歌枕肩 2024-10-22 23:52:42

我遇到了同样的问题并以这种方式解决了...

我检查默认文本的方法是检查值是否==元素占位符属性。

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

    });

I had the same problem and solved it this way...

The way I have it check for default text is to check if the value == the elements placeholder 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"
            }
        }

    });
っ〆星空下的拥抱 2024-10-22 23:52:42

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

http:// /www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html

HTML5 has support for placeholders as part of markup. You can use jQuery to handle other browsers.

A well presented way to do this is presented at http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html

风追烟花雨 2024-10-22 23:52:42

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

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

有时我发现一些浏览器可以读取/操作某些属性,从而产生意想不到的行为。

You are probably using the alt on a element that does not take that attribute alt is for images and etc not input fields! Therefore the browser will not accept it.

Try an attribute like: "data-default" or anything with 'data-*' to store these values.

sometimes I find some browsers to read/manipulate certain attributes acting with unexpected behavior.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文