ASP.. NET下拉列表选项取决于其他下拉列表中选择的选项
ASP.NET dropdown list options depends on chosen option in other dropdown list
我有一个简单的ViewModel,我在我的应用程序中传递给视图,它有两个选择列表,有几个选项,例如:
public class MyViewModel {
public SelectList Names { get; set;} // e.g options - N1,N2,N3
public SelectList Years { get; set;} // e.g options - Y1,Y2,Y3
}
为每个选择列表定义了几个选项。在我看来,我有两个DropDownListFor,用户可以很容易地选择选项-它是独立的。
但是我想做的是,当用户在第一个下拉列表中选择N1时,那么在第二个下拉列表中将只有选项Y2,Y3可用。当用户选择N2时,第二个将只出现N3等
也许用jQuery的东西?如何获取特定下拉列表中当前选择的选项的信息?使用JavaScript ?
是的,这在javascript中是可能的。
首先,你需要使用javascript或Jquery从下拉列表中获得选中的选项,例如:
yourSelect。(yourSelect选项。selectedIndex] value
则必须使用javascript或jquery设置禁用属性。
这篇文章的答案可能会有所帮助。
进一步看这个例子
如果你想完全删除它们,那么你需要通过使用JQuery删除节点来删除它们。
我用jQuery解决了我的问题,如果有人需要它:
@Html.DropDownListFor(model => model.Name, Model.Names, "Wybierz rodzaj", new { @class = "form-control", onchange="setRateOptionsByDepositType(this.value)"})
. js文件:
function setRateOptionsByDepositType(type) {
if (type === "Lokata standardowa") {
$('#rate').prop('selectedIndex', 0);
$('option[value="0,60"]').hide();
$('option[value="1,70"]').show();
$('option[value="2,00"]').show();
$('option[value="2,20"]').show();
$('option[value="2,70"]').show();
}
else if (type === "Rachunek oszczędnościowy") {
$('#rate').prop('selectedIndex', 0);
$('option[value="0,60"]').show();
$('option[value="1,70"]').hide();
$('option[value="2,00"]').hide();
$('option[value="2,20"]').hide();
$('option[value="2,70"]').hide();
}
}
其中rate为本页其他下拉列表的id
相关文章:
- 如何在从多选下拉列表中选择选项值时动态生成文本框
- 如何为下拉列表的每个选项添加一个属性
- jQuery下拉列表未显示第一个选项
- 使用选项组对下拉列表进行排序
- 从下拉列表中禁用其对应项的某些选定选项
- 使用Ajax或JavaScript选择下拉列表选项后,在同一页面上执行PHP脚本
- webforms:在javascript中动态添加下拉列表选项
- 在另一个下拉列表中的选择上切换下拉列表中选项的可见性
- 如果使用jquery在页面加载时未选择任何选项,如何禁用下拉列表
- 从下拉列表中选择其他选项时激活文本框
- 使用下拉列表过滤 ng 重复,而不复制下拉选项
- 如何在多选下拉列表中使选项成为必填/只读选项
- 从选择选项下拉列表中计算多个值
- 更改选择选项下拉列表与onclick功能按钮
- 选择其他字段元素时如何重置选择选项下拉列表
- j使用“选择选项”下拉列表查询多星评级系统
- 如何自动单击选项下拉列表
- 使用ui grid editableCellTemplate中的ng选项下拉列表[ng grid3.x]
- 层次结构和多选项下拉列表(HTML),并在项目之间导航(子节点)
- 从选择选项下拉列表中获取部分值