在Steven Sanderson 的博客的帮助下,我实现了一个视图,其中生成了动态数量的文本框和 DropDownList 。一切正常。但我希望直到每个下拉列表都有一个值,表单无法提交,如果没有下拉列表,我的意思是所有动态内容都被删除,那么表单不能提交。
主视图代码:
<div id="Part2">
<h3><u>Services:</u></h3><br />
<div id="EditorRows">
<%Html.RenderPartial("_InsertServices", Model);%>
</div>
<div id="DontAppend">
<%= Html.ActionLink("+ Add Another Service", "Add", null, new { id = "addItem" }) %>
<input type="button" id="btnEdit" value="Edit" hidden="hidden"/>
<input type="button" id="btnDone" value="Done" />
</div>
</div>
部分视图代码:
<div class="EditorRow">
<% using (Html.BeginCollectionItem("services")){ %>
<table id="table1">
<tr>
<td>NOS:</td>
<td><%:Html.DropDownListFor(model=>model.Id,(SelectList)ViewData["crmServiceType"] as SelectList,"---")%></td>
<td>Comment:</td>
<td><%=Html.TextBoxFor(model => model.Comment, new { size = "20" })%></td>
<td><a href="#" class="deleteRow">delete</a></td>
</tr>
</table>
<% } %>
</div>
JavaScript:
$("#addItem").click(function () {
$.ajax({
url: this.href,
cache: false,
success: function (html) { $("#EditorRows").append(html); }
});
return false;
});
$("a.deleteRow").live("click", function () {
$(this).parents("div.EditorRow:first").remove();
return false;
});
这是生成的 HTML 源代码。