6

我有一个启用了远程验证的视图模型。在我看来,我也禁用了 OnKeyUp

    $(function() {
        $.validator.setDefaults({ onkeyup: false });
    })

但是,如果我专注于文本框,并将焦点移到另一个控件,则根本不会触发远程验证。

当我将远程验证配置为 onBlur 和空字符串时,有没有办法可以要求触发?

4

1 回答 1

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块,并以空字符串为焦点,则将触发远程验证。

于 2014-12-07T06:05:39.127 回答