空白HTML SELECT,下拉列表中没有空白项目


110

如何实现主题?

当我写:

<form>
  <select>
     <option value="0">aaaa</option>
     <option value="1">bbbb</option>
  </select>
</form>

然后默认选择的项目是“ aaaa”

当我写:

<form>
  <select>
     <option value=""></option>
     <option value="0">aaaa</option>
     <option value="1">bbbb</option>
  </select>
</form>

然后默认选中的项目为空白,但此空白项目显示在下拉菜单中。

如何使用隐藏在下拉列表中的默认空白值实现SELECT标签?


Answers:


182

只需使用禁用和/或隐藏属性:

<option selected disabled hidden style='display: none' value=''></option>
  • selected 使此选项成为默认选项。
  • disabled 使该选项不可点击。
  • style='display: none'使该选项在较旧的浏览器中不显示。请参阅:我可以使用隐藏属性文档。
  • hidden 使该选项不显示在下拉列表中。

3
实际上,IE 11确实显示“隐藏”选项。
爱德华·奥拉米桑

6
WebKit的似乎不支持“隐藏”属性
伊桑Reesor

2
正如“ 我可以使用”中提到的那样,该hidden属性有效display: none,因此支持较旧的浏览器:<option selected disabled hidden style='display: none' value=''></option>
Neta 2015年


33

只需使用

<option value="" selected disabled>Please select an option...</option>

无需脚本即可在任何地方工作,并允许您同时指导用户。



11

这是使用普通JavaScript的一种简单方法。这与pimvdb发布的jQuery脚本非常相似。您可以在这里进行测试。

<script type='text/javascript'>
  window.onload = function(){
    document.getElementById('id_here').selectedIndex = -1;
  }
</script>

<select id="id_here">
  <option>aaaa</option>
  <option>bbbb</option>
</select>

确保表单和JavaScript中的“ id_here”匹配。


3

你不能 他们根本无法那样工作。下拉菜单必须始终选择其选项之一。

您可以(尽管不建议这样做)监视更改事件,然后使用JS删除第一个选项(如果为空)。


3
您为什么不推荐这种行为?
Josh Noe 2012年

在很多情况下,您希望用户主动从列表中选择内容。我不认为JS是实现它的最佳方法(尽管这似乎是唯一的方法),但我确实认为应该有一种方法。
qwerty

2

对于纯HTML @isherwood有一个很好的解决方案。对于jQuery,给您的select下拉ID,然后使用jQuery选择它:

<form>
  <select id="myDropDown">
    <option value="0">aaaa</option>
    <option value="1">bbbb</option>
  </select>
</form> 

然后使用此jQuery清除页面加载下拉列表:

$(document).ready(function() {
    $('#myDropDown').val(''); 
});

或将其单独放在函数中:

$('#myDropDown').val(''); 

如果您需要在不重新加载页面的情况下删除下拉菜单,则可以轻松完成所需的操作,并将其放入可以在页面上调用的函数中。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.