【问题标题】:jQuery validate plugin: validate on blur() by defaultjQuery 验证插件:默认在 blur() 上验证
【发布时间】:2015-04-08 17:24:25
【问题描述】:

好的,我知道jQuery Validate is opinionated 关于何时(不)在blur 上进行验证:

在一个字段被标记为无效之前,验证是惰性的:在第一次提交表单之前,用户可以在字段之间切换而不会收到烦人的消息——他们在有机会实际输入之前不会被窃听正确的值

有没有办法覆盖这种行为?我希望每个字段在失去焦点时都得到验证,而不是在出现错误之后。

【问题讨论】:

    标签: jquery jquery-validate


    【解决方案1】:

    jQuery 验证默认是“惰性”验证。这意味着,在第一次点击提交之前,在从一个字段移动到另一个字段时会忽略大部分验证。

    您正在请求“渴望”验证,因此只需使用自定义函数覆盖 onfocusout 默认值...

    $('#yourForm').validate({
        // rules, options, etc.,
        onfocusout: function(element) {
            // "eager" validation
            this.element(element);  
        }
    });
    

    文档:http://jqueryvalidation.org/validate/#onfocusout

    其他参考:https://stackoverflow.com/a/28114269/594235

    默认onfocusout函数:

    onfocusout: function(element) {
        // "lazy" validation by default
        if (!this.checkable(element) && (element.name in this.submitted || !this.optional(element))) {
            this.element(element);
        }
    },
    

    【讨论】:

    • 哇哦。很简单!实际上,我只是深入研究代码并找出了这个确切的解决方案......所以我将发布我自己的相同答案并接受它。
    • 开个玩笑。为你接受!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多