You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在联动填充第二个下拉框时保留第一个下拉框选中值?

解决第一个下拉框选中值丢失的问题

直接修改视图代码即可,核心是给第一个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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 20:32:51