Twe*_*eZz 8 javascript jquery javascript-events jquery-validate unobtrusive-validation
默认情况下,jQuery验证插件的安装进行验证处理focusin,focusout和keyup事件.
我们的一个验证是发出一个(同步)请求来检索一些数据.我希望仅在提交表单时触发验证,而不是在用户键入时触发.
有没有办法动态禁用1个元素的键盘验证?
更新1:
我忘了提到我正在使用不引人注目的验证.所以我认为@Mario Johnathan的答案不是一个选择.
更新2:我尝试了以下内容($ element是我想要更改验证行为的元素):
$element.validate({focusout: false, keyup: false});$element.keyup(function() {
return false;
});$element.off('keyup');$element.unbind('keyup');我自己也是在同一个场景中.下面是我用它的代码.
$.validator.setDefaults({
onkeyup: function () {
var originalKeyUp = $.validator.defaults.onkeyup;
var customKeyUp = function (element, event) {
if ($("#your_element")[0] === element) {
return false;
}
else {
return originalKeyUp.call(this, element, event);
}
}
return customKeyUp;
}()
});
Run Code Online (Sandbox Code Playgroud)
这里我所做的是处理该元素的keyup事件,以便验证器不做任何事情.为了休息所有元素,验证器将开始行动.但这里的问题是,特定元素根本不会对keyup进行验证.