0
綁定的客戶端驗證我的Ajax表單在MVC 3新增表單元素沒有得到在MVC 3
在索引視圖:
<div id="ajaxcontactform">
<% Html.RenderPartial("ContactForm", Model); %>
</div>
上的ContactForm管窺
AJAX形式
<% using (Ajax.BeginForm("Contact", new AjaxOptions()
{
UpdateTargetId = "ajaxcontactform",
OnBegin = "ShowProcessing",
OnComplete = "HideProessing",
InsertionMode = InsertionMode.Replace
}))
{%>
<%: Html.ValidationSummary()%>
<%: Html.TextBoxFor(m => m.Name, new { Class = "contacttextform" })%>
<%}%>
我的控制器:
[HttpPost]
public ActionResult Contact(ContactForm form)
{
if (Request.IsAjaxRequest())
{
// on error
if (!ModelState.IsValid)
return PartialView("ContactForm", form);
// TODO: My data processing code here
// return partial view on success
return PartialView("ContactForm", new ContactFormModel());
}
}
我的客戶端自定義驗證JavaScript代碼: 我只是在master頁面引用這個文件。當DOM被加載/創建一次時,該代碼會運行一次。
$.validator.addMethod("phonenumber", function (value, element, params) {
if (!value)
return true;
var regex = /^[\s\d\+\(\)]+$/;
return regex.test(value);
});
jQuery.validator.unobtrusive.adapters.addBool("phonenumber");
我第一次加載我的頁面時,我的客戶端驗證正常工作。但是,一旦我成功提交我的表單並嘗試再次提交我的表單。我的客戶端驗證不起作用,我的表單驗證了它的服務器端。
我想在添加新元素或重新渲染局部視圖後再次綁定我的客戶端驗證。
另外,一旦提交成功,應如何清除表單值。
感謝,
感謝達林。重新呈現局部視圖後,客戶端驗證將起作用。乾杯 – jNet