如何在联动填充第二个下拉框时保留第一个下拉框选中值?
解决第一个下拉框选中值丢失的问题
直接修改视图代码即可,核心是给第一个input绑定选中值,同时修正datalist的selected逻辑:
视图代码修改:
<input type="text" name="medCompany" id="medCompany" list="ddlmedCompany" class="form-control form-control-lg" value="@Model.medCompany" /> <!-- 新增value绑定,显示选中值 --> <datalist id="ddlmedCompany"> @foreach (var item in Model.lstmedCompany) { <option @(item.Text == Model.medCompany ? "selected='selected'" : "")>@item.Text</option> <!-- 只有匹配选中值的option才加selected --> } </datalist> <input type="text" name="medName" id="medName" list="ddlmedName" class="form-control form-control-lg" /> <datalist id="ddlmedName" > @foreach (var item in Model.lstmedName) { <option>@item.Text</option> } </datalist> <script> $(function() { $('#medCompany').change(function() { window.location = "GetMedicineList?medicine=" + $(this).val(); }); }); </script>
说明:
- 第一个input添加
value="@Model.medCompany",页面刷新后会直接显示ViewModel中保存的选中值,这是保留显示的关键。 - datalist里的option不再全部加selected,而是通过三元判断,只有和当前选中值一致的选项才标记为selected,避免多个选项同时选中的混乱。
- 控制器代码已经正确把选中的
medicine值赋值给addMedicinesViewModel.medCompany,不需要改动。
内容的提问来源于stack exchange,提问作者Dnyati
相关产品推荐
相关产品推荐

