我在 MVC 3 中有 AJAX 表单。
在索引视图中:
<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 代码:我刚刚在母版页中引用了这个文件。此代码在 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");
当我第一次加载我的页面时,我的客户端验证工作正常。但是,一旦我成功提交表单并尝试再次提交我的表单。我的客户端验证不起作用,我的表单在服务器端验证它。
添加新元素或重新渲染部分视图后,我想再次绑定客户端验证。
另外,一旦成功提交,我应该如何清除我的表单值。
谢谢,