执行jqueryvalidation后,如何传播元素无效?

时间:2015-05-21 13:41:37

标签: jquery events jquery-validate

按表单的提交按钮时,将执行表单验证。特定元素 - 下拉列表 - 可能无法通过验证并收到一个新类,将其标记为无效。当添加这个类时,我希望有另一个单独的DOM元素来通知添加这个新类。然后,另一个元素必须将错误类从validated元素复制到其自己的类属性以进行样式化(反之,当重新验证成功时)。此行为不适用于所有表单元素。因此,通过插件的highlight-或errorPlacement-callbacks的一般实现似乎在我的情况下无法使用,因为根据我的理解,这个回调适用于所有表单元素而不是我需要的单个表单元素。 / p>

我似乎坚持如何通过监听器挂钩验证过程。我检查了Plugin Docs以确定在验证后是否触发了事件,但是找不到任何相关信息。

你们中的某些人可能有相同的要求并找到了你们可能分享的工作解决方案吗?

修改 问题描述被扩展以澄清问题

1 个答案:

答案 0 :(得分:1)

  

另一个元素必须接收带样式的验证元素错误类。

您可以根据需要使用highlight选项应用样式。使用highlight选项时,您还可以使用unhighlight选项执行相反操作。

highlight: function(element, errorClass, validClass) {
    $(element).addClass(errorClass).removeClass(validClass);
    // and/or something like this?
    $(element).parent('div').addClass(errorClass).removeClass(validClass);
},
unhighlight: function(element, errorClass, validClass) {
    $(element).addClass(validClass).removeClass(errorClass);
    // and/or something like this?
    $(element).parent('div').addClass(validClass).removeClass(errorClass);
}

以上是一个非常通用的示例,与默认示例类似。您需要使用任何适当的jQuery DOM遍历方法自己做一些事情。你从来没有真正描述过你想要做的事情,所以我无法提供自定义解决方案。

修改

您可以有条件地应用这些功能,使其仅影响某个元素。

在此示例中,错误/有效类也将应用于具有类select的任何输入元素的同级.foo元素。您可以根据需要编辑条件和jQuery选择器...

highlight: function(element, errorClass, validClass) {
    $(element).addClass(errorClass).removeClass(validClass); // default
    // with something like this?
    if ($(element).hasClass('foo')) {
        $(element).siblings('select').addClass(errorClass).removeClass(validClass);
    }
},
unhighlight: function(element, errorClass, validClass) {
    $(element).addClass(validClass).removeClass(errorClass); // default
    // with something like this?
    if ($(element).hasClass('foo')) {
        $(element).siblings('select').addClass(validClass).removeClass(errorClass);
    }
}