远程验证多次触发

时间:2015-11-09 20:25:48

标签: c# jquery asp.net forms validation

我正在学习如何使用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设置正确

enter image description here

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

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

回发

enter image description here

1 个答案:

答案 0 :(得分:0)

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

得到了这个想法