这是我所知道的基本功能,但我正在尝试使用表单元素来验证onblur或在输入时。我真的很难让事情正常运转。
$('document').ready(function(){
$('form').validate({
rules: {
a: {
onkeyup:true,
required:true,
minlength:2
}
},
messages: {
a: {
required: "enter your name!"
}
}
});
});
我可以让部分工作......但我必须在输入内容后点击进入和退出输入。为什么是这样?然后我添加了这个
$('#a').blur(function(){
$("form").validate().element("#a");
});
它适用于onblur但是当我返回并输入有效条目时,错误消息不会消失。这是html:
<div>
<form action="#">
<input type="text" name="a" id="a">
</form>
</div>
以下是小提琴:
http://jsfiddle.net/mmw562/S7AKK/16/
http://jsfiddle.net/mmw562/S7AKK/17/
有人可以解释发生了什么吗?我确实感谢你的帮助,尽管我知道这是非常基本的东西......
答案 0 :(得分:2)
As per documentation,onkeyup:
是.validate()
选项,而不是字段验证规则。你必须相应地放置它......
$('document').ready(function(){
$('form').validate({
// "onkeyup" is the default behavior, leave it out unless disabling
// onkeyup: false,
rules: {
a: {
required:true,
minlength:2
}
},
messages: {
a: {
required: "enter your name!"
}
}
});
});
修改强>
onkeyup:
是默认行为,因此只需将其保留为默认行为即可。将其设置为true
不仅是多余的,而且实际上会破坏其预期的功能。
如果您需要将其停用,请将其设为false
:
onkeyup: false
如果您需要更改onkeyup
的默认行为,请使用以下函数:
onkeyup: function(element, event) {
// your custom onkeyup functionality
}
纯粹是供参考,这是默认onkeyup:
函数的运作方式:
onkeyup: function(element, event) {
if ( event.which === 9 && this.elementValue(element) === '' ) {
return;
} else if ( element.name in this.submitted || element === this.lastActive ) {
this.element(element);
}
}