如何使用 blazor 制作带有输入字段的下拉列表以进行过滤?

gia*_*132 6 html c# blazor blazor-client-side

我想做带有输入字段的下拉列表。我使用 Blazor 客户端框架。

这是我的代码

       <div>
            <datalist id="suggestions">
                @if (cityList != null)
                {
                    @foreach (var city in cityList)
                    {
                        <option value="@city.CityName">@city.CityName</option>
                    }
                }
            </datalist>
          <input autoComplete="on" list="suggestions" />
        </div>
Run Code Online (Sandbox Code Playgroud)

这是工作,但如果我尝试在输入中打印不存在的值 - 结果是好的。我需要阻止选择不存在的元素。我怎样才能用数据列表做到这一点?或者也许我需要使用选择选项?提前致谢!

Isa*_*aac 4

如果您希望阻止选择不存在的元素,请使用 InputSelect 组件。

如果您想创建一个搜索机制,显示可供选择的建议列表(以自动完成的形式)进行搜索,但允许用户输入其他值进行搜索,请使用带有输入标记的数据列表。毕竟这就是搜索工具的工作原理,对吧?我知道使用带有输入标签的数据列表很诱人,因为它更吸引眼球。但只有当它符合所需的功能时才应该使用它。

话虽如此,我相信您可以创建一个带有 datalist 和 input 标签的组件,该组件可以阻止选择不存在的元素。这可能涉及 Blazor 数据绑定、C# 代码,或许还涉及 JSInterop。我不会尝试这样做,除非......

希望这可以帮助...