jQuery验证插件和屏蔽输入-忽略不工作

jQuery验证插件和屏蔽输入-忽略不工作,jquery,jquery-validate,Jquery,Jquery Validate,我的表单中有一个字段不是必需的(在validate中没有规则),但我确实向它添加了屏蔽输入,这样,如果用户想要输入信息,它将是一种有用的格式 但是,如果我单击该字段并触发屏蔽输入,它似乎会验证(变为绿色并给出“OK”)。我尝试将ignore添加到validate中,但它仍然返回为valid 以下是代码的相关部分: $("#ssn").mask("999-99-9999",{placeholder:" "}); $("#jqvForm").validate({ ignore: ".igno

我的表单中有一个字段不是必需的(在validate中没有规则),但我确实向它添加了屏蔽输入,这样,如果用户想要输入信息,它将是一种有用的格式

但是,如果我单击该字段并触发屏蔽输入,它似乎会验证(变为绿色并给出“OK”)。我尝试将ignore添加到validate中,但它仍然返回为valid

以下是代码的相关部分:

$("#ssn").mask("999-99-9999",{placeholder:" "});
$("#jqvForm").validate({
    ignore: ".ignore",
    onkeyup: false,
    highlight: function (label) {
        $(label).closest('.form-element').addClass('error')
            .closest('.form-element').removeClass('success');
        $('#result').html(''); 
    },
    success: function (label) {
        label.text('OK!').addClass('valid')
            .closest('.form-element').addClass('success');
    },
    rules: { etc },
    messages: { etc }
});

我的SSN输入字段确实有class=“ignore”,但是调用了“success”,它添加了类和标签文本。

取消高亮显示回调函数与突出显示相反,而不是
成功
。和
element、errorClass、validClass
是这两个回调函数的唯一有效参数,而不是
label

您也不必在同一个链中选择两次
.closest('.form element')
;一次就够了。我看不到你的HTML,所以我甚至不确定你是否需要这个选择器。我假设
元素
最接近('.form element')
相同,所以我删除了后者。否则,根据您的意愿调整此答案

试试这个

highlight: function (element, errorClass, validClass) {
    $(element).addClass('error').removeClass('success');
    $('#result').html(''); 
},
unhighlight: function (element, errorClass, validClass) {
    $(element).removeClass('error').addClass('success');
},
success: function (label) {
    label.text('OK!').addClass('valid');
},

请参阅:

如果不看到HTML,我们如何回答?为简明的示例提供足够的代码。另请参见,请修改最后一句中的语法和拼写。。。就目前而言,我不知道你想说什么~“哪个添加了类和标签文本”?谢谢Sparky-我出去了一天,刚刚有时间做了一把小提琴-它现在看起来确实有效,但我确实想看看你发布的内容,因为我的代码似乎与你的提示相反。