我有一个非常奇怪的要求,其中我被要求在HTML下拉菜单中没有默认选择的选项。然而,
我不能用这个,
<选择> <选项> < /选项> <选项>选项1 > < /选项 <选项>选项2 > < /选项 <选项>选项3 > < /选项 < /选择>
因为,对于这个,我必须做验证来处理第一个选项。有人能帮助我实现这个目标,而不实际包括第一个选项作为选择标签的一部分吗?
我有一个非常奇怪的要求,其中我被要求在HTML下拉菜单中没有默认选择的选项。然而,
我不能用这个,
<选择> <选项> < /选项> <选项>选项1 > < /选项 <选项>选项2 > < /选项 <选项>选项3 > < /选项 < /选择>
因为,对于这个,我必须做验证来处理第一个选项。有人能帮助我实现这个目标,而不实际包括第一个选项作为选择标签的一部分吗?
当前回答
如果一开始你不需要任何空选项,试试第一行:
<option style="display:none"></option>
其他回答
您可以使用Javascript来实现这一点。试试下面的代码:
HTML
<select id="myDropdown">
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
</select>
JS
document.getElementById("myDropdown").selectedIndex = -1;
或JQuery
$("#myDropdown").prop("selectedIndex", -1);
<select required>
<option value="" disabled selected>None</option>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
在这种情况下,可以避免自定义验证。
没有HTML解决方案。根据HTML 4.01规范,如果没有一个选项元素具有selected属性,那么浏览器的行为是未定义的,而浏览器在实践中所做的是使第一个选项预选。
作为一种变通方法,您可以用一组input type=radio元素(具有相同的name属性)替换select元素。这将创建一个具有不同外观和用户界面的同类控件。如果输入type=radio元素中没有一个具有checked属性,那么在大多数现代浏览器中,它们最初都不会被选中。
选择风格= "显示:没有"
平板电脑:iPad Pro / iOS 15 / Safari的糟糕解决方案 下拉菜单中出现了一个不必要的行,仅用于实际设备。不会在模拟器上重现。
也许这个会有帮助
<选择> <option disabled selected value>——选择一个选项——</option> <选项>选项1 > < /选项 <选项>选项2 > < /选项 <选项>选项3 > < /选项 < /选择>
——select an option——默认显示。但是如果你选择了一个选项,你将不能再选择它。
您也可以通过添加一个空选项来隐藏它
<选择风格= "显示:没有" >
所以它不会再出现在列表中了。
选项2
如果你不想写CSS,并期望上面的解决方案具有相同的行为,只需使用:
<option hidden disabled selected value>——选择一个选项——</option> .