在我看来,我有
<div class="form-group">
@Html.LabelFor(m => m.IsBasket, new { @class = "control-label col-sm-2" })
<div class="col-sm-10">
<div class="input-group" id="IsBasket">
@Html.DropDownListFor(model => model.IsBasket, ViewBag.RefAssetType as IEnumerable<SelectListItem>, new { @class = "form-control" })
</div>
</div>
</div>
<div id="SingleStock" class="hide">
<div class="form-group">
@Html.LabelFor(m => m.ReferenceAsset, new { @class = "control-label col-sm-2" })
<div class="col-sm-10">
<div class="input-group">
@Html.DropDownListFor(model => model.ReferenceAsset, ViewBag.RefAssetList as IEnumerable<SelectListItem>, new { @class = "form-control" })
</div>
</div>
</div>
</div>
<div id="Basket" class="hide">
<div class="form-group">
@Html.LabelFor(m => m.PayoutCurrency, new { @class = "control-label col-sm-2" })
<div class="col-sm-10">
<div class="input-group">
@Html.DropDownListFor(model => model.PayoutCurrency, ViewBag.CurrencyList as IEnumerable<SelectListItem>, new { @class = "form-control" })
</div>
</div>
</div>
</div>
我的剧本
<script>
$('#IsBasket').on('change',function()
{
if ($(this).val()== true)
{
$('#SingleStock').addClass('hide');
$('#Basket').removeClass('hide');
}
if ($(this).val() == false)
{
$('#Basket').addClass('hide');
$('#SingleStock').removeClass('hide');
}
})
</script>
此处定义了RefAssetType的选择列表
Dictionary<bool, string> RefAssetTypeDictonary = new Dictionary<bool, string>
{
{false, "Single Stock"},
{true, "Basket"},
};
ViewBag.RefAssetType = new SelectList(RefAssetTypeDictonary, "Key", "Value");
我最终想要的是,如果用户选择&#34;篮子&#34;来自id =&#34; IsBasket&#34;然后输入id = Basket将出现。如果是单库,则输入id = SingleStock部分将显示。但这种变化并没有起作用。
我希望有人可以帮忙解决这个问题。谢谢:))
答案 0 :(得分:0)
问题是您将onchange处理程序附加到包含下拉菜单的div。当下拉列表的值发生变化时,这并不意味着容器div会发生变化。如果您将jQuery选择器更改为使用find,它应该可以工作,如下所示:
$('#IsBasket').find('select').on('change',function() {
// ...
});
使用此选择器,您将onchange处理程序附加到ID为#IsBasket
的div中包含的任何HTML select元素。