【发布时间】:2019-12-25 23:48:46
【问题描述】:
我是 Web 开发的新手,我刚刚学习了 Jquery 来创建动态下拉列表。我面临的问题是当我进入编辑视图时我的下拉菜单没有更新。
所以我已经能够成功地为我的创建视图创建动态下拉列表(参见代码)。
创建.cshtml:
<div class="form-group col-md-4" id="drop_1">
<label asp-for="Option_1" class="control-label"></label>
<select asp-for="Option_1" class="form-control" id="opt1">
<option value="">Select Option</option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
</select>
<span asp-validation-for="Option_1" class="text-danger"></span>
</div>
<div class="form-group col-md-4" id="drop_2">
<label asp-for="Option_2" class="control-label"></label>
<select asp-for="Option_2" class="form-control" id="opt2">
<option value="">Select Option</option>
</select>
<span asp-validation-for="Option_2" class="text-danger"></span>
</div>
<div class="form-group col-md-4" id="drop_3">
<label asp-for="Option_3" class="control-label"></label>
<select asp-for="Option_3" class="form-control" id="opt3">
<option value="">Select Option</option>
</select>
<span asp-validation-for="Option_3" class="text-danger"></span>
</div>
Edit.cshtml 与 Create.cshtml 相同
Site.js:
$(function() {
$('#opt3').change(function () {
var x = $(this);
if (x.val() == "") {
$('#drop_2').hide();
$('#drop_3').hide();
}
else {
if (x.val() == "A") {
$('#opt2').find('option').remove().end();
$('#opt2').append('<option value="D">D</option>');
.
.
. etc.
}
}
//Same for the remaining dropdowns
});
});
关键是当我开始点击我的下拉菜单时,我的下拉菜单会起作用。但是我想看到的是,当我尝试进入我的编辑视图并拉入数据时,下拉菜单会根据下拉菜单 1 和 2 的任何数据自动更改,而无需用户重新选择下拉菜单 1和 2.
【问题讨论】:
-
我已经研究了触发方法,但它们对我不起作用,这可能是因为我不知道如何使用它们。我试图在函数的开头添加它们,例如: $('opt1').change()
标签: javascript jquery asp.net-core .net-core asp.net-core-mvc