【问题标题】:prevent jQuery validation messages until submit在提交之前阻止 jQuery 验证消息
【发布时间】:2012-10-04 16:45:36
【问题描述】:

我只想在输入字段期间和之后隐藏所有错误消息(错误输入或空字段)。一旦按下提交/按钮,消息就会全部出现/可见。

问题是......每次我输入错误或将文本字段留空时,它总是显示错误消息,例如“此字段是必需的”等。

rules : {

    "user.firstname" : {
    required : true,
    maxlength: 50,

},
messsages : {
required : "required",
maxlength: "the max-length is 50"
"
}

【问题讨论】:

  • 你的代码中有一个流浪的"
  • 也许你可以回来告诉我们这一切的结果。谢谢。

标签: jquery jquery-validate


【解决方案1】:

根据online documentation,您需要使用onfocusout:onkeyup: 选项。


在模糊时验证元素(复选框/单选按钮除外)。如果 不输入任何内容,跳过所有规则,除非该字段是 已标记为无效。

禁用 onblur验证:

onfocusout: false

在 keyup 上验证元素。只要该字段未标记为 无效,没有任何反应。否则,将检查每个键的所有规则 up 事件。

禁用 onkeyup 验证:

onkeyup: false

根据您是否有复选框和单选按钮,您可能还需要禁用 onclick: 选项。

在点击时验证复选框和单选按钮。

禁用点击验证:

onclick: false

【讨论】:

    【解决方案2】:

    您可以尝试使用 $(document).ready(function(){} 代替

    $('input[type=submit]').click(function(event) {
     // Do your validation, if it fails use event.preventDefault();  
    });
    

    试一试,让我知道会发生什么......

    【讨论】:

    • 这是实现插件的错误方式。 .validate() 必须在 document.ready 中初始化才能正常运行。点击处理程序已经内置在插件中,因此将其包装在另一个中是多余且不恰当的。
    • 如果文档是这样说的,那么我很抱歉......但我刚刚尝试过,它工作正常,所以你能告诉我你说的功能正常是什么意思吗? (只是出于好奇想知道)
    • 请参阅 thisthisthis。根据报告您提议的实施存在问题的人数,它似乎很受欢迎,尽管完全错误。
    • 是的,插件的submitHandler: 已经从submit 按钮捕获click 事件。此外,在您的 click 处理程序中,它在单击之前不会被初始化。如果第二次点击它,事情就会变得很奇怪,因为插件被不必要地重新初始化了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-20
    • 1970-01-01
    • 2019-02-28
    相关资源
    最近更新 更多