我试图将jQuery Validate插件集成到我的Rails应用程序中:
<script>
$(function() {
$("#edit_researcher").validate({
debug: false,
rules: {
"researcher[first_name]": {required: true},
"researcher[email]": {required: true, email: true}
},
messages: {
"researcher[first_name]": { required: "First name is required" },
"researcher[email]": {
required: "Email is required",
email: "Your email address must be in the format of name@domain.com"
}
}
});
</script>
这是有效的,但问题是.validate
方法仅在单击提交按钮时触发。我想在onfocus
和onblur
触发,因为我认为这是jQuery.validate()
的默认值。
在Rails应用中实现jQuery.validate()
时是否有人遇到过同样的问题?
如何让它触发onfocus
和onblur
?
答案 0 :(得分:1)
引用OP :
“...问题是只有在点击提交按钮时才触发
.validate
方法。我希望在onfocus
和onblur
处触发该方法,我认为是jQuery.validate()
的默认值。“
此插件中没有此类事件onfocus
和onblur
。实际上,默认行为是onfocusout
和onkeyup
。但是,这两个行为只有在初次点击提交按钮后才开始工作。
您现有的代码:http://jsfiddle.net/bu7ukmvy/
此默认行为称为“延迟验证”,而不是“Eager Validation”,这是您似乎要求的。
您可以修改onfocusout
和onkeyup
回调函数,以忽略用户是否已经点击了提交按钮,而是在第一次模糊和按键时触发它们。
$("#edit_researcher").validate({
// rules & options,
....,
onfocusout: function (element) {
this.element(element);
},
onkeyup: function (element, event) {
this.element(element);
}
});