仅对少数特定隐藏字段启用验证

ale*_*lex 6 jquery jquery-validate

作为这个问题的必然结果,我如何配置jQuery Validate来验证表单中的一些隐藏字段,但不是全部?

jQuery Validate 默认忽略隐藏字段,这在ASP.NET项目中是一个问题.例如,一个页面可能有一个带有复选框助手(生成隐藏inputs)的表单,以及可能利用许多隐藏输入的自定义下拉列表.

$(document).ready(function() {
    $('#myform').validate({
        ignore: [],
        // any other options and/or rules
    });
});
Run Code Online (Sandbox Code Playgroud)

像这样使用配置对象,有什么方法可以让我设置它以允许我选择要验证的特定隐藏输入,不必指定插件必须忽略的每个单独输入?

或者,是否存在我可以在此方案中使用的验证事件挂钩?

Jos*_*ier 7

默认值ignore属性":hidden".您可以简单地使用:not()伪类来否定特定类被忽略.

例如,如果使用选择器":hidden:not(.do-not-ignore)",jQuery validate将忽略除隐藏元素之外的所有隐藏元素.do-not-ignore:

$('#myform').validate({
    ignore: ':hidden:not(.do-not-ignore)',
    // any other options and/or rules
});
Run Code Online (Sandbox Code Playgroud)

这样,您可以将类添加.do-not-ignore到您仍想要验证的隐藏元素中.