我有一个不需要的表单中的字段(在验证中没有规则),但我确实添加了屏蔽输入,这样如果用户想要输入信息,它将是一种有用的格式
但是,如果我点击该字段并触发屏蔽输入,它似乎验证(变为绿色并给出“OK”)。我尝试将ignore添加到validate中,但它仍然返回为有效。
以下是代码的相关部分:
$("#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”来加入类和标签文本。
答案 0 :(得分:0)
unhighlight
回调函数与highlight
相反,而不是success
。 element, errorClass, validClass
是这两个回调函数的唯一有效参数,而不是label
。
您也不必在同一个链中选择.closest('.form-element')
两次;一次就够了。我看不到你的HTML,所以我甚至不确定你是否需要这个选择器。我假设element
与.closest('.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');
},