我可以使用 jQuery 验证库为每个输入添加规则吗?

发布于 2024-10-08 01:55:42 字数 439 浏览 0 评论 0原文

我正在使用 jQuery 验证 库。

我设置了一个自定义方法来阻止人们使用默认值提交表单。

// Don't submit form using placeholder valeus
$.validator
.addMethod(
 'noPlaceholder',
 function(value, element) {
    return value !== element.defaultValue;
 },
 'Please enter a value.'
);

我想做的是将这个规则应用于每个输入。

我知道我可以添加我已有的每条规则,但我很好奇这是否可能?

我在浏览文档时没有发现任何具体内容。

I am using the jQuery Validation library.

I have setup a custom method to stop people submitting the form with its default values.

// Don't submit form using placeholder valeus
$.validator
.addMethod(
 'noPlaceholder',
 function(value, element) {
    return value !== element.defaultValue;
 },
 'Please enter a value.'
);

What I want to do is have this rule applied to every input.

I know I could add to it each individual rule I already have, but I was curious to know if this was possible?

I didn't find anything specific in my browsing of the documentation.

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

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

发布评论

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

评论(1

踏雪无痕 2024-10-15 01:55:42

这并不能准确回答您的问题,但是当您尝试检测占位符文本时,并且 jQuery 验证的代码似乎使用 jQuery 的 .val() 方法来检索文本输入,这是有道理的使用简单的包装器覆盖 .val(),如果输入的值与 element.defaultValue 相同,则返回 ""。那么您将不需要新的验证方法,因为“必需”规则将按预期工作。

$.fn._val = $.fn.val;
$.fn.val = function () {
    if (arguments.length === 0) {
       var v = this._val();
       if (v === this[0].defaultValue) v = "";
       return v;
    }

    return $.fn._val.apply(this, arguments);
};

This doesn't answer your question exactly, but seeing as you're trying to detect placeholder text, and that jQuery validation's code appears to use jQuery's .val() method for retrieving text input, it makes sense to override .val() with a simple wrapper that returns "" if the input's value is the same as element.defaultValue. You won't need a new validation method then, as the "required" rule will work as intended.

$.fn._val = $.fn.val;
$.fn.val = function () {
    if (arguments.length === 0) {
       var v = this._val();
       if (v === this[0].defaultValue) v = "";
       return v;
    }

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