【问题标题】:Remote Validation OnBlur and Empty String远程验证 OnBlur 和空字符串
【发布时间】:2012-10-07 04:19:51
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您可以使用 jquery 的 blur 事件对您通过远程验证调用的方法进行 ajax 调用。点击提交后,验证工作。

标签: asp.net-mvc asp.net-mvc-4 remote-validation


【解决方案1】:

为此,您需要修改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 块,并以空字符串为焦点,则会触发远程验证。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-16
    相关资源
    最近更新 更多