jQuery Validation插件添加逻辑以忽略选项

时间:2014-12-03 21:19:56

标签: jquery jquery-validate

如何添加忽略选项的逻辑,我知道我可以执行以下操作:

ignore: ":hidden"
ignore: ":hidden:not(.my_item), .area"
.
.
.

我想在ignore选项中添加逻辑,例如以下html:

<div class="con-logic" style="display: none;">
    <div class="section">
        <label for="content" class="field-label">
            <textarea title="reeeq" class="textarea required area" style="height: 200px; display: none;" autocomplete="off" cols="40" name="content" id="content"></textarea>
        </label>
    </div>
</div>

如果隐藏了具有类con-logic的div,我想忽略这个textarea字段。

PS:iframe的textarea。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您无法“添加逻辑”以根据条件或其他任何内容动态切换jQuery Validate ignore选项。此选项仅接受jQuery选择器,并且在调用.validate()后,无法更改该选项。

引用OP

  

“如果隐藏了类con-logic的div,我想忽略这个textarea字段。”

默认情况下,这个插件的工作方式已经存在。您不需要ignore选项也不需要任何特殊逻辑。

根据您发布的HTML,textarea将被隐藏,因为它位于隐藏的父容器中。因为jQuery Validate插件会自动忽略所有隐藏的输入元素,所以它的行为与您的请求完全相同。

DEMO(父级div隐藏):http://jsfiddle.net/4n448ycj

DEMO(已显示父级div):http://jsfiddle.net/4n448ycj/1/

当您动态切换父元素的可见性时,jQuery Validate插件的行为将正确遵循。

DEMO(切换div):http://jsfiddle.net/4n448ycj/2/


修改

引用已修改OP

  

“PS:iframe的textarea。”

iframe是什么?...您的OP中没有显示iframe

答案 1 :(得分:-1)

if (!$(".con-logic").css('display') == 'none') {
// ...
}

试试这个希望它会有所帮助。