【发布时间】:2015-07-23 05:06:19
【问题描述】:
我有一个 asp.net 下拉列表和一个 html 按钮。单击按钮(此处命名为克隆)时,我应该根据以下场景生成一个下拉列表。
- 我一开始只有 1 个下拉列表(有 5 个选项)=> 1,2,3,4,5 -> 默认选择第一个选项。我点击克隆按钮。
- 我选择选项 5(在选择列表 #2 中,即第一次单击按钮后生成的下拉列表。)
- 我再次点击克隆-> 新列表 (#3) 仅添加了选项 2、3、4
- 我选择选项 2(在选择列表 #3 中)
- 我点击克隆 -> 使用选项 3,4 创建新列表 (#4)
- ..等等。
一旦我到达最新的下拉列表,我想禁用之前所有的下拉列表实例(ddlCityName)。
例如:
- 进入下拉列表#2 后,我需要禁用下拉列表#1
- 对于下拉列表#3,我需要禁用下拉列表#1 和下拉列表#2
- 等等....
这是动态创建下拉列表的现有代码:
<body>
<form id="form1" runat="server">
<div>
<table>
<tr>
<td>Category:</td>
<td>
<asp:DropDownList ID="ddlCityName" runat="server" DataTextField="City" DataValueField="City" class="ddlClone"></asp:DropDownList>
<input type="button" id="btnClone" value="Add" />
</td>
</tr>
</table>
</div>
<div id="target">
<br />
<br />
</div>
</form>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$('#btnClone').click(function () {
//$('#ddlCityName').append('<option selected="ddlClone" value="0">Select City</option>');
var original = $('select.ddlClone:eq(0)');
var allSelects = $('select.ddlClone');
var clone = original.clone();
$('option', clone).filter(function (i) {
return allSelects.find('option:selected[value="' + $(this).val() + '"]').length;
}).remove();
$('#target').append($('<span>').text('Category: '));
$('#target').append(clone).append('<br /><br /><br />');
});
</script>
请分享你的想法!
【问题讨论】:
标签: javascript c# jquery asp.net