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

ASP.NET Core 6 MVC中如何实现仅显示下拉框的可编辑下拉组件

解决ASP.NET Core 6中可编辑下拉框样式问题

问题原因

你给<datalist>标签添加了form-control form-control-lg类,这类样式是为表单输入元素设计的,会让datalist被渲染成可见的下拉框,导致和关联的input文本框同时显示。

修正方案

1. 移除datalist的表单样式类

修改视图代码,去掉datalist的form-control form-control-lg类(datalist本身是隐藏元素,无需这些样式):

<input type="text" name="medCompany" id="medCompany" list="ddlmedCompany" class="form-control form-control-lg" />
<datalist id="ddlmedCompany">
@foreach (var item in Model.lstmedCompany)
{
    <option>@item.Text</option>
}
</datalist>

2. 让输入框外观接近下拉框(可选)

如果希望输入框视觉上更像传统下拉框,可以添加CSS伪元素模拟下拉箭头:

#medCompany {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
    background-position: right 0.5rem center;
    background-repeat: no-repeat;
    background-size: 1.5em 1.5em;
    padding-right: 2.5rem;
    cursor: pointer;
}

这段CSS会在输入框右侧添加Bootstrap风格的下拉箭头,点击输入框即可触发datalist选项列表,同时保留输入框可编辑特性。

3. 功能验证

修改后运行项目,页面只会显示一个带下拉箭头的可编辑输入框,输入内容时会自动匹配datalist中的选项,不会再出现额外的下拉框。

内容的提问来源于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:12:12