我有一个启用了远程验证的视图模型。在我看来,我也禁用了OnKeyUp
$(function() {
$.validator.setDefaults({ onkeyup: false });
})
但是,如果我专注于文本框,并将焦点移动到另一个控件,则根本不会触发远程验证。
当我将其配置为onBlur和空字符串时,有没有办法可以让远程验证触发?
答案 0 :(得分:0)
为此,您需要修改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
块,并使用空字符串进行聚焦,则会触发远程验证。