我有一个非常奇怪的要求,其中我被要求在HTML下拉菜单中没有默认选择的选项。然而,

我不能用这个,

<选择> <选项> < /选项> <选项>选项1 > < /选项 <选项>选项2 > < /选项 <选项>选项3 > < /选项 < /选择>

因为,对于这个,我必须做验证来处理第一个选项。有人能帮助我实现这个目标,而不实际包括第一个选项作为选择标签的一部分吗?


当前回答

这应该会有帮助:

https://www.w3schools.com/tags/att_select_required.asp

< >形式 需要<选择> <选项值= " " > < /选项>没有 沃尔沃<选项值=“沃尔沃”> < /选项> 萨博<选项值= "萨博" > < /选项> <选项值= "奔驰" >奔驰> < /选项 <选项值=“奥迪”>奥迪> < /选项 < /选择> <按钮类型=“提交”> > < /按钮提交 > < /形式

其他回答

< td > < b >字段标签:< / b > < br > <选择风格= '对齐:左;' id='some_id' name='some_name'> .宽度:100% <option hidden selected>选择一个 <选项值=“Value1”> OptLabel1 > < /选项 <选项值= Value2的> OptLabel2 > < /选项 <选项值= ' Value3 ' > OptLabel3 < /选项> < /选择> 道明> < /

只需把“隐藏”选项你想隐藏下拉列表。

今天(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>&#160;</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 >

只使用CSS的解决方案:

答:内联CSS

<选择> <选择风格= "显示:没有;" > < /选项> <选项>选项1 > < /选项 <选项>选项2 > < /选项 <选项>选项3 > < /选项 < /选择>

B: CSS样式表

如果你有一个CSS文件在手,你可以针对第一个选项使用:

选择。first-opt隐藏选项:first-of-type { 显示:没有; } <选择类= " first-opt-hidden " > <选项> < /选项> <选项>选项1 > < /选项 <选项>选项2 > < /选项 <选项>选项3 > < /选项 < /选择>

如果你使用的是Angular(2+),(或任何其他框架),你可以添加一些逻辑。逻辑是:如果用户还没有选择任何其他选项,则只显示一个空选项。 因此,在用户选择了一个选项之后,空选项就会消失。

对于Angular(9),它看起来像这样:

<select>
    <option *ngIf="(hasOptionSelected$ | async) === false"></option>
    <option *ngFor="let option of (options$ | async)[value]="option.id">{{ option.title }}</option>
</select>

也许这个会有帮助

<选择> <option disabled selected value>——选择一个选项——</option> <选项>选项1 > < /选项 <选项>选项2 > < /选项 <选项>选项3 > < /选项 < /选择>

——select an option——默认显示。但是如果你选择了一个选项,你将不能再选择它。

您也可以通过添加一个空选项来隐藏它

<选择风格= "显示:没有" >

所以它不会再出现在列表中了。

选项2

如果你不想写CSS,并期望上面的解决方案具有相同的行为,只需使用:

<option hidden disabled selected value>——选择一个选项——</option> .