我使用的是ASP.Net MVC3 Razor,我在.cshtml中有两个下拉列表,让我们说ddl1和ddl2。 我在控制器中绑定了数据并使用viewbag发送到下拉列表。 两个ddl都有相同的数据,如A,B,C,D。如果我在ddl1中选择A,它应该在ddl2中隐藏A;如果选择B,它应该在ddl2中隐藏B.任何人都可以帮我使用javascript或jquery。
这是我的控制器,我已经绑定..
public ActionResult Index()
{
ViewBag.ddl1 = new SelectList(db.Collection, "ID", "Name");
ViewBag.ddl2 = new SelectList(db.Collection, "ID", "Name");
return View();
}
并且视图是(上述操作的.cshtml)
<table class="table">
<tr>
<td>
@Html.DropDownList("ddl1", "-select name-")
</td>
<td>
@Html.DropDownList("ddl2","-select name-")
</td>
</tr>
</table>
Thanx提前
答案 0 :(得分:1)
这是主要的想法。假设我们有2个下拉列表:
<select id="ddl1">
<option>Select</option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
</select><br/><br/>
<select id="ddl2">
<option>Select</option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
</select>
从ddl2中删除ddl1选定值:
$('#ddl1').change(function() {
$('#ddl2 option').each(function() {
if ($(this).attr('value') == $('#ddl1 option:selected').attr('value')) {
$(this).remove();
}
});
});
还要从ddl1:
中删除ddl2选定值$('#ddl2').change(function() {
$('#ddl1 option').each(function() {
if ($(this).attr('value') == $('#ddl2 option:selected').attr('value')) {
$(this).remove();
}
});
});
如果您想在每次更改时重新加载下拉值,只需再次调用您的下拉列表功能。我希望这会有所帮助......
此处还有演示:http://jsfiddle.net/cJ8wN/8/