【发布时间】:2016-04-09 01:01:14
【问题描述】:
我刚刚问过这个question。
但是现在我使用了那个解决方案,我想知道是否有更有效的方法来完成这个。
我的下拉列表是由我的数据库中的一个表创建的。假设我的表如下所示:
|ID| |SuperHero| |Category|
1 Batman DC
2 Superman DC
3 Aquaman DC
4 Spiderman Marvel
5 Ironman Marvel
6 Hulk Marvel
有了这个表格的想法,我的下拉列表看起来类似于:
- 直流
- 蝙蝠侠
- 超人
- 海王
- 漫威
- 蜘蛛侠
- 钢铁侠
- 绿巨人
这是由这个创建的:
ViewBag.SuperHero = new SelectList(db.superhero, "ID", "SuperHero", "Category", null,null);
现在,如果您查看我上面提出的问题的链接。我有一个复选框,只有在下拉列表中选择了某些值时才需要显示该复选框。
所以,按照我在另一个问题中给出的解决方案,我必须这样做:
$(document).ready(function () {
$("#chkbox").hide();
$('#superhero').change(function () {
var selectedActivity = $(this).val();
$('#chkbox').hide();
if (selectedActivity === "1", "2", "3") {
$('#chkbox').show();
}
});
});
因此,如果选择了来自 DC 的任何超级英雄,则会显示该复选框。
如果CategoryDC下有任何值,可以用Javascript做些什么,显示复选框?我觉得这可能更有效和节省时间,而不是我必须手动输入每个不同的值数字..
无论如何我都没有问题!我只是想知道是否有更有效的方法来实现这一点。
感谢任何帮助。
更新:
由new SelectList()生成的HTML:
<div class="form-group">
<label class="control-label col-md-2 required" for="superhero">SuperHero</label>
<div class="col-md-10">
<select class="form-control" id="superhero" name="superhero"><option value="">-- Select SuperHero --</option>
<optgroup label="DC">
<option value="1">Batman</option>
<option value="2">Superman</option>
<option value="3">Aquaman</option>
</optgroup>
<optgroup label="Marvel">
<option value="4">Spiderman</option>
<option value="5">Ironman</option>
<option value="6">Hulk</option>
</optgroup>
<span class="field-validation-valid text-danger" data-valmsg-for="superhero" data-valmsg-replace="true"></span>
</div>
</div>
【问题讨论】:
-
您必须展示
new SelectList()创建的实际HTML。您可以在显示 DC 超级英雄的选项中添加一个类,然后检查所选选项是否具有该类等。 -
@adeneo 请查看更新
标签: javascript jquery asp.net-mvc-5