我有一个如下所示的ajax表单:
<% using (Ajax.BeginForm("Comments", "Comments", null, new AjaxOptions {UpdateTargetId="main", OnSuccess="createSuccess" }, new{ @id="main"})) {%>
<%: Html.ValidationSummary(true, "errors") %>
<fieldset>
<legend>Fields</legend>
<div class="editor-label">
<%: Html.LabelFor(model => model.Body) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Body) %>
<%: Html.ValidationMessageFor(model => model.Body) %>
</div>
<div class="editor-label">
<%: Html.LabelFor(model => model.Name) %>
</div>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Name) %>
<%: Html.ValidationMessageFor(model => model.Name) %>
</div>
<p>
<input type="submit" value="Submit" />
</p>
</fieldset>
<% } %>
<div id="Success" style="display:none;">
New entry successfully entered
</div>
<script type="text/javascript">
function createSuccess(context)
{
if ($(".validation-summary-errors").length > 0) {
return;
}
$('#main').clearForm()
$('#Success').show();
}
这是检查表单是否已成功提交的正确方式吗?如果验证摘要的类名发生了变化怎么办?有没有更好的方法?
谢谢
发布于 2010-10-31 23:51:55
你绝对是在正确的轨道上。需要知道的重要一点是,为了填充服务器端验证消息,您需要Comments操作返回包含上面表单的部分,因为当ajax调用返回时,它将用操作的结果替换任何具有id="main“(您的表单)的内容。
https://stackoverflow.com/questions/4049929
复制相似问题