我的ASP.NET MVC4应用程序在模型中定义了一个远程验证规则,并在控制器方法中实现。我的表单被动态添加到页面中。所以,我用下面的代码来触发验证。MVC4不显眼验证不等待远程验证完成
$(tabId).on("submit", formId, function (event) {
event.preventDefault();
var form = $(this);
form.removeData("validator");
$.validator.unobtrusive.parse(form);
if (form.valid())
{
// form submission
// THIS part executes even though the remote validation returns false
}
return false;
});
它开始远程验证,不等待完成,然后提交表单。如果任何其他字段无效(例如,名称是必填字段),则会停止提交。但是,它不会等待远程验证。
我在SO上找到了一些解决办法,如link1和link2。不过,这些工作只有在我的页面中定义了jQuery验证规则。不过,我正在使用MVC4模型验证规则。因此我不想重新定义我的视图页面中的规则。
任何想法解决?
您是否曾尝试在if(form.valid())之前调用'form.validate()'? – mattytommo
是的,我试过'form.validate()'。它没有工作。 –
@NRocking你找到任何解决方案吗?我正在寻找它的解决方案。 – touseefkhan4pk