是否有可能在 <datalist> 中禁用用户输入?
Posted
技术标签:
【中文标题】是否有可能在 <datalist> 中禁用用户输入?【英文标题】:Is there a potential way to disable user input in a <datalist>? 【发布时间】:2017-04-11 16:20:56 【问题描述】:我在使用<select>
或<datalist>
来显示一个用户可以从中选择项目的下拉列表。
<select>
标签的一个缺点是它不一致,因为它在不同的浏览器中呈现不同:一些浏览器显示滚动条,而对于一些浏览器,它是一个下拉列表。
另一方面,<datalist>
看起来不错,但我只是想知道是否有任何方法可以禁用文本输入,如果用户不点击向下箭头,他们可以在文本框中输入任何他们想要的内容输入框上的按钮如图:
<form action="demo_form.asp" method="get">
<input list="browsers" name="browser">
<datalist id="browsers">
<option value="Internet Explorer">
<option value="Firefox">
<option value="Chrome">
<option value="Opera">
<option value="Safari">
</datalist>
<input type="submit">
</form>
有没有办法在保留下拉列表的同时禁用输入栏?我尝试了 'readonly' 属性,但这会导致整个不可点击。
【问题讨论】:
【参考方案1】:您可以在input
元素上使用the pattern
attribute 来限制允许的值:
<form action="demo_form.asp" method="get">
<input list="browsers" name="browser"
pattern="Internet Explorer|Firefox|Chrome|Opera|Safari"
title='Must be "Internet Explorer", "Firefox", "Chrome", "Opera", or "Safari"'>
<datalist id="browsers">
<option value="Internet Explorer">
<option value="Firefox">
<option value="Chrome">
<option value="Opera">
<option value="Safari">
</datalist>
<input type="submit">
</form>
【讨论】:
以上是关于是否有可能在 <datalist> 中禁用用户输入?的主要内容,如果未能解决你的问题,请参考以下文章