我有一个非常奇怪的要求,其中我被要求在HTML下拉菜单中没有默认选择的选项。然而,
我不能用这个,
<选择> <选项> < /选项> <选项>选项1 > < /选项 <选项>选项2 > < /选项 <选项>选项3 > < /选项 < /选择>
因为,对于这个,我必须做验证来处理第一个选项。有人能帮助我实现这个目标,而不实际包括第一个选项作为选择标签的一部分吗?
我有一个非常奇怪的要求,其中我被要求在HTML下拉菜单中没有默认选择的选项。然而,
我不能用这个,
<选择> <选项> < /选项> <选项>选项1 > < /选项 <选项>选项2 > < /选项 <选项>选项3 > < /选项 < /选择>
因为,对于这个,我必须做验证来处理第一个选项。有人能帮助我实现这个目标,而不实际包括第一个选项作为选择标签的一部分吗?
当前回答
为了显示,请在下拉菜单中选择一个值,并在选择某个值后隐藏它。请使用下面的代码。
它还将支持所需的验证。
<select class="form-control" required> <option disabled selected value style="display:none;">—请选择一个值</option> . <option >Data 1</option> . <option >Data 2</option> <option >Data 3</option> . < /选择>
其他回答
对于那些使用<select multiple> (combobox;没有下拉),这对我来说很管用:
<select size=1 disabled multiple> . <select size=1 disabled multiple> . <option hidden selected></option> 我<选项>选项> < /选项 < /选择>
为了显示,请在下拉菜单中选择一个值,并在选择某个值后隐藏它。请使用下面的代码。
它还将支持所需的验证。
<select class="form-control" required> <option disabled selected value style="display:none;">—请选择一个值</option> . <option >Data 1</option> . <option >Data 2</option> <option >Data 3</option> . < /选择>
如果你使用的是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>
我只想说一句:
一些Safari浏览器似乎既不尊重“hidden”属性,也不尊重样式设置“display:none”(在MacOS 10.12.6下使用Safari 12.1测试)。没有显式的占位符文本,这些浏览器只是在选项列表中显示一个空的第一行。因此,为这个“虚拟”条目提供一些解释性文本可能是有用的:
<option hidden disabled selected value>(select an option)</option>
由于“disabled”属性,它无论如何都不会被主动选择。
< td > < b >字段标签:< / b > < br > <选择风格= '对齐:左;' id='some_id' name='some_name'> .宽度:100% <option hidden selected>选择一个 <选项值=“Value1”> OptLabel1 > < /选项 <选项值= Value2的> OptLabel2 > < /选项 <选项值= ' Value3 ' > OptLabel3 < /选项> < /选择> 道明> < /
只需把“隐藏”选项你想隐藏下拉列表。