默认select选项为空白

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

我不能用这个,

<select> <option></option> <option>Option 1</option> <option>Option 2</option> <option>Option 3</option> </select> 

因为,为此我将不得不做validation来处理第一个选项。 任何人都可以帮助我实现这个目标,而不包括第一个选项作为select标签的一部分?

也许这会有所帮助

 <select> <option disabled selected value> -- select an option -- </option> <option>Option 1</option> <option>Option 2</option> <option>Option 3</option> </select> 

-- select an option --默认显示。 但是,如果您select一个选项,您将无法select它。

您也可以通过添加一个空白option来隐藏它

<option style="display:none">

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

你可以使用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); 

今天(2015-02-25)

这是有效的HTML5并发送一个空白(不是空格)到服务器:

 <option label=" "></option> 

http://validator.w3.org/check上validation的有效性;

Win7的validation行为(IE11 IE10 IE9 IE8 FF35 Safari5.1)Ubuntu14.10(Chrome40,FF35)OSX_Yosemite(Safari8,Chrome40)Android(三星Galaxy-S5)

以下也是今天通过validation,但是也从大多数浏览器(可能不希望)传递某种空间字符,并在其他一些空白(Chrome40 / Linux通过空白):

 <option>&#160;</option> 

以前(2013-08-02)

根据我的说明,上面显示的选项标签中的非突破性空间实体在2013年产生了以下错误:

错误:W3C标记validation服务(公共):具有必需属性且不具有多属性且大小为1的select元素的第一个子元素选项元素必须具有空值属性,或者必须没有文本内容。

那时候,一个固定的空间是有效的XHTML4,并且从每个浏览器发送一个空白(不是空格)到服务器:

 <option> </option> 

未来

如果规范更新为明确允许一个空白选项,这将使我感到高兴。 最好使用最简单的语法。 以下任何一种都很棒:

 <option /> <option></option> 

testing文件

 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Test</title> </head> <body> <form action="index.html" method="post"> <select name="sel"> <option label=" "></option> </select> </form> </body> </html> 
 <td><b>Ação da atividade:</b><br> <select style='align:left; width:100%;' id='cbxTipoSFA' name='cbxTipoSFA'> <option hidden selected>Selecione uma opção</option> <option value='Instalação'>Instalação</option> <option value='Solicitação'>Solicitação</option> <option value='Retirada'>Retirada</option></select> </td> 
 <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> 

在这种情况下,您可以避免自定义validation。

使用jQuery:

 //With jQuery 1.7.2 $("#myDropdown").attr("selectedIndex", -1); 

试过并testing了jQuery v1.7.2(2012年4月18日的最新版本),但是“prop”不适用于这个版本。

没有HTML解决scheme。 按照HTML 4.01规范,如果没有任何option元素具有selected属性,浏览器行为是不确定的,并且浏览器在实践中做的是他们做出第一个select。

作为一种解决方法,您可以用一组input type=radio元素(具有相同的name属性)replaceselect元素。 虽然具有不同的外观和用户界面,但是这创build了相同types的控件。 如果input type=radio元素都没有checked属性,那么在大多数现代浏览器中都没有select它们。

仅使用CSS工作的解决scheme:

答:内联CSS

 <select> <option style="display:none;"></option> <option>Option 1</option> <option>Option 2</option> <option>Option 3</option> </select> 

尝试这个:

 <select> <option value="">&nbsp; <option>Option 1 <option>Option 2 <option>Option 3 </select> 

在HTML5中进行validation。 在select元素中使用required属性。 可以重新select。 适用于Google Chrome 45,Internet Explorer 11,Edge,Firefox 41。