我有一个启用了远程验证的视图模型。在我看来,我也禁用了 OnKeyUp
$(function() {
$.validator.setDefaults({ onkeyup: false });
})
但是,如果我专注于文本框,并将焦点移到另一个控件,则根本不会触发远程验证。
当我将远程验证配置为 onBlur 和空字符串时,有没有办法可以要求触发?
我有一个启用了远程验证的视图模型。在我看来,我也禁用了 OnKeyUp
$(function() {
$.validator.setDefaults({ onkeyup: false });
})
但是,如果我专注于文本框,并将焦点移到另一个控件,则根本不会触发远程验证。
当我将远程验证配置为 onBlur 和空字符串时,有没有办法可以要求触发?
为此,您需要修改jquery-validate.js
文件。
与远程验证相关的代码:
remote: function(value, element, param) {
if ( this.optional(element) )
return "dependency-mismatch";
var previous = this.previousValue(element);
....
// ajax call
....
}
第一个if
块测试元素是否是可选的,除非[Required]
属性已应用于属性,或者属性是值类型(我假设您的属性是 typeof string
),否则函数将返回并且生成 ajax 的代码电话永远打不通。请注意,即使您添加了该[Required]
属性,此代码块也永远不会调用,因为required:
首先经过验证,您只会收到“需要 XXX 归档”消息。
如果您注释掉第一个if
块,并以空字符串为焦点,则将触发远程验证。