【问题标题】:remote validation triggering multiple times远程验证触发多次
【发布时间】:2015-11-09 20:25:47
【问题描述】:

我正在学习如何使用C# remote validation。我遇到的问题是验证调用多次发生并且表单不再提交。当我注释掉远程验证属性时,它可以正常工作,或者如果该字段为空,它可以正常工作(在表单被提交时很好)。这是我定义 Remote 属性的方式。

[DisplayName("User Type (Logged In)")]
[UIHint("DropDownList")]
[Remote("UserTypeCheck", "Settings", AdditionalFields = "Id,Context,Key")]
public List<int> UserTypeIds { get; set; } 

检查 DOM 我发现 data-val-remote-url 设置正确

但是当我单击提交并查看 DEV 控制台时,我可以看到它正在进行三个调用,而第二个调用正在中止/取消。我不确定是什么原因造成的。即使事件正在触发,它也没有提交表单,因为我将此处理程序添加到表单的提交事件中

$form.submit(function() {
    console.log("submit got fired");
    console.log(this);
 });

回发

【问题讨论】:

    标签: c# jquery asp.net forms validation


    【解决方案1】:

    原来我遗漏了一条信息。从客户端到服务器的远程验证由 jquery.validate.js 完成。话虽如此,jquery.validate 使用的异步调用在我们再次尝试提交之前没有及时完成,这导致它重新验证该字段。通过在定义远程规则时设置async:false,我能够停止后续提交。我的想法来自mlynch comments here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-09
      相关资源
      最近更新 更多