我在一个JQuery UI对话框中显示一个部分视图。部分视图包含包含Html.ValidationMessageFor条目的字段,表单本身有一个Html.ValidationSummary。我似乎根本无法让客户端验证工作。如果我将字段空并将选项卡保留给另一个字段,我希望看到错误消息。如果在成功加载部分视图时包含这一行,我就能够看到验证消息.
$.validator.unobtrusive.parse('#theForm');但这只是当我提交ajax表单时,而不是之前。
在jquery对话框中加载部分视图.
$('#theForm').load('/Company/Edit', function (response, status, xhr)
{
if (status != "success")
$('#theForm').html('failed to load details')
else {
$.validator.unobtrusive.parse('#theForm');
$('#theForm').dialog({ title: title, show: 'blind', hide: 'blind', width: '1000px' });
$('#theForm').dialog('open');
}
});部分视图..。
@model CompanyDetails
@using (Ajax.BeginForm("Save", "Company", new AjaxOptions() { HttpMethod="Post", OnSuccess="closeForm" }, new {@id = "companyDetailsForm"}))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary()
<fieldset>
<legend>Company Details Form</legend>
<ol>
<li>
@Html.LabelFor(c => c.Name)
@Html.TextBoxFor(c => c.Name)
@Html.ValidationMessageFor(c => c.Name)
</li>
<li>
<input type="submit" value="Save" />
</li>
</ol>
</fieldset>
}这是克拉斯模型..。
public class CompanyDetails
{
[Required]
[Display(Name = "Company Name")]
public string Name { get; set; }
}我的web.config里有这个..。
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="ClientValidationEnabled" value="true"/>我有以下的javascript文件。
有人能发现我做错了什么吗?
发布于 2013-02-06 15:08:10
但这只是当我提交ajax表单时,而不是之前。
这就是不引人注目的javascript验证的工作方式。如果将字段留为空白并从中退出选项卡,则除非尝试提交表单,否则不会触发验证。
https://stackoverflow.com/questions/14731419
复制相似问题