jquery - 在 jQuery 验证插件中自定义事件委托(delegate)

标签 jquery jquery-validate validation event-delegation

我目前正在设置 jQuery 验证插件以在我们的项目中使用。

默认情况下,会自动设置一些事件来进行处理。 IE。所有输入火验证上的焦点输入/输出、按键事件。我希望它仅在单击提交按钮时触发。

此功能似乎内置于插件中,这使得很难做到这一点(不修改插件代码,这不是我想要做的)。

我在插件代码原型(prototype)方法中找到了eventDelegate函数调用:

        $(this.currentForm)
            .validateDelegate(":text, :password, :file, select, textarea", "focusin focusout keyup", delegate)
            .validateDelegate(":radio, :checkbox, select, option", "click", delegate);

当我从插件中删除这些行时,我得到了结果,但是我宁愿在插件之外做一些事情来实现这一点。

有人可以帮我吗?如果您需要更多详细信息,请告诉我。我在谷歌上搜索过但收效甚微。

谢谢

编辑: 我基本上试图仅在提交事件被触发时验证表单。默认情况下,每次焦点在输入控件中丢失时,插件都会进行验证。

最佳答案

找到答案了。它作为验证方法中选项的一部分(隐藏?)消失了。

请参阅本页上的 onfocusout 等选项: http://docs.jquery.com/Plugins/Validation/validate#options

我可以将其设置为 false。

这是我设置验证器的代码(希望其他人会发现这很有用):

$(document).ready(function() {
    $("form").each(function() {
        $(this).validate({
            validateDelegate: function() { },
            onsubmit: true,
            onkeydown: false,
            onkeyup: false,
            onfocusin: false,
            onfocusout: false,

            errorContainer: "#PanelError",
            errorLabelContainer: "#PanelError ul",
            wrapper: "li",
            ignoreTitle: true,
            errorClass: "Error",

            highlight: function(element, errorClass, validClass) {
                $(element).addClass(errorClass).removeClass(validClass);
                $(element.form).find("#" + element.id)
                        .addClass(errorClass);
            },
            unhighlight: function(element, errorClass, validClass) {
                $(element).removeClass(errorClass).addClass(validClass);
                $(element.form).find("#" + element.id)
                        .removeClass(errorClass);
            }
        });
    });
});

关于jquery - 在 jQuery 验证插件中自定义事件委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2762458/

相关文章:

javascript - 使用 Ajax 加载 Rails 部分

javascript - 如何取回由 knockout 映射绑定(bind)的 knockout 可观察对象

javascript - jQuery 验证 : change behaviour of error placement

javascript - Chrome 模式输入验证上的正则表达式

validation - 在 Magento 中表单验证后更改错误消息

javascript - 如果选择下拉菜单只有一个选项,如何禁用它?

javascript - 如何使用 jQuery 验证插件以编程方式检查表单是否有效

asp.net-mvc - 在 ASP.net MVC 中通过 jQuery 在客户端本地化验证消息

ruby - Ruby 中的 XSD 模式验证

jQuery 在某些属性名称的自定义事件中吃掉我的数据