我的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