如何设置验证器,以便在更改此表单上任何输入的值时检查表单上的所有字段。我试过了
$("#form-user-edit").validate({
keypress : true
});
但它不起作用。
我做了一个jsFiddle http://jsfiddle.net/NickBunich/pDrTF/1/
问题在于,当你在第一个输入中键入内容时 - 其他输入变为启用状态,但是如果你在第二个输入中键入内容,然后将其删除然后在第一个输入中删除文本 - 错误信息并突出显示将保留。
答案 0 :(得分:2)
以下答案演示了插件the built-in callback event functions的正确用法。外部回调函数的创建是多余的,也是不必要的。
您的代码......
$("#form-user-edit").validate({
keypress : true
});
你不能简单地化妆"或者"发明" .validate()
个选项。 keypress:
不存在。请参阅this page for the only available options。
如何设置验证器,以便检查表单上的所有字段 每当更改此表单上任何输入的值时。
已有一个名为onkeyup
的选项,默认情况下已开启。 (这仅检查每个按键事件的活动输入。)
您可以修改onkeyup
以满足您的需求。这将检查每个键加事件上的整个表单。
$(document).ready(function() {
$("#form-user-edit").validate({
// other rules and options,
onkeyup: function (element, event) {
if (event.which === 9 && this.elementValue(element) === '') {
return;
} else if (element.name in this.submitted || element === this.lastActive) {
if($("#form-user-edit").valid()) {
$("#form-user-edit .error").removeClass('error');
};
}
}
});
});
工作演示: http://jsfiddle.net/CMT5r/
工作演示包含修改后的OP代码以便按要求运行。
答案 1 :(得分:1)
作为一个例子,你必须:
指定检查规则
$("#form-user-edit").validate({
rules: {
name: "required",
email: {
required: true,
email: true
}
},
messages: {
name: "Please specify your name",
email: {
required: "We need your email address to contact you",
email: "Your email address must be in the format of name@domain.com"
}
}
})
本教程将为您提供有关验证see here
的大量解释答案 2 :(得分:0)
您可以添加change
事件处理程序来执行此操作
$("#form-user-edit").on('change', ':input', function(){
if($("#form-user-edit").valid()) {
$("#form-user-edit .error").removeClass('error')
}
})
演示:Fiddler