我有一个非常奇怪的要求,其中我被要求在HTML下拉菜单中没有默认选择的选项。然而,
我不能用这个,
<选择> <选项> < /选项> <选项>选项1 > < /选项 <选项>选项2 > < /选项 <选项>选项3 > < /选项 < /选择>
因为,对于这个,我必须做验证来处理第一个选项。有人能帮助我实现这个目标,而不实际包括第一个选项作为选择标签的一部分吗?
我有一个非常奇怪的要求,其中我被要求在HTML下拉菜单中没有默认选择的选项。然而,
我不能用这个,
<选择> <选项> < /选项> <选项>选项1 > < /选项 <选项>选项2 > < /选项 <选项>选项3 > < /选项 < /选择>
因为,对于这个,我必须做验证来处理第一个选项。有人能帮助我实现这个目标,而不实际包括第一个选项作为选择标签的一部分吗?
当前回答
<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>
在这种情况下,可以避免自定义验证。
其他回答
今天(2015-02-25)
这是有效的HTML5,并发送一个空白(不是空格)到服务器:
<option label=" "></option>
验证有效性http://validator.w3.org/check
Win7(IE11 IE10 IE9 IE8 FF35 Safari5.1) Ubuntu14.10(Chrome40, FF35) OSX_Yosemite(Safari8, Chrome40) Android(Samsung-Galaxy-S5)
下面的代码今天也通过了验证,但是从大多数浏览器(可能不需要)向服务器传递某种空格字符,在其他浏览器上传递一个空白(Chrome40/Linux传递一个空白):
<option> </option>
之前(2013-08-02)
根据我的笔记,在2013年,上面所示的选项标签内的非间断空格实体产生了以下错误:
错误:W3C Markup Validaton Service (Public):第一个子选项 属性的选择元素的 多个属性,其大小为1,必须为空 值属性,否则必须没有文本内容。
当时,一个普通的空格是有效的XHTML4,并从每个浏览器发送一个空白(不是空格)到服务器:
<option> </option>
未来
如果规范更新到明确允许空白选项,我会很高兴。最好使用最简洁的语法。以下任何一个都很好:
<option />
<option></option>
测试文件
<!DOCTYPE html > < html > < >头 <meta http-equiv=" content - type " content="text/html;utf - 8字符集= " / > <标题>测试< /名称> > < /头 <身体> <form action="index.html" method="post"> <选择name = "选取" > <option label=" "></option> . < /选择> > < /形式 < /身体> < / html >
选择风格= "显示:没有"
平板电脑:iPad Pro / iOS 15 / Safari的糟糕解决方案 下拉菜单中出现了一个不必要的行,仅用于实际设备。不会在模拟器上重现。
如果一开始你不需要任何空选项,试试第一行:
<option style="display:none"></option>
只使用CSS的解决方案:
答:内联CSS
<选择> <选择风格= "显示:没有;" > < /选项> <选项>选项1 > < /选项 <选项>选项2 > < /选项 <选项>选项3 > < /选项 < /选择>
B: CSS样式表
如果你有一个CSS文件在手,你可以针对第一个选项使用:
选择。first-opt隐藏选项:first-of-type { 显示:没有; } <选择类= " first-opt-hidden " > <选项> < /选项> <选项>选项1 > < /选项 <选项>选项2 > < /选项 <选项>选项3 > < /选项 < /选择>
我只想说一句:
一些Safari浏览器似乎既不尊重“hidden”属性,也不尊重样式设置“display:none”(在MacOS 10.12.6下使用Safari 12.1测试)。没有显式的占位符文本,这些浏览器只是在选项列表中显示一个空的第一行。因此,为这个“虚拟”条目提供一些解释性文本可能是有用的:
<option hidden disabled selected value>(select an option)</option>
由于“disabled”属性,它无论如何都不会被主动选择。