是否有提交空选择倍数的标准客户端行为?

时间:2011-03-09 08:08:51

标签: html select standards

http://www.w3.org/TR/html401/interact/forms.html#edef-SELECT

如果提交的select multiple为空,则不指定客户端的行为方式。有谁知道是否有标准吗?

2 个答案:

答案 0 :(得分:2)

可悲的是,我没有时间对此进行测试,但我希望以下内容可以帮助您...

如果我没弄错的话,加载页面时默认选择第一个元素。因此,请创建一个非常简单的HTML文件,其中formselect的{​​{1}}属性处于活动状态,并且有一些multiple。然后,打开文件,查看Chrome,Firefox,Internet Explorer,Opera和Safari等少数浏览器中会发生什么。

另一件事是看看HTML5在这里说了些什么:http://dev.w3.org/html5/spec/Overview.html#the-select-element

<强>更新

W3C HTML 4.01标准声明了这一点(在您提供的链接中向下滚动一下):

  

17.6.1预先选择的选项

     

可能有零个或多个选择   为用户预先选择。用户代理   应该确定哪些选择   预先选择如下:

     

如果没有OPTION元素具有所选   属性集,用户代理行为   最初选择哪个选项   选中未定义。注意。以来   现有的实现处理这个   情况不同,目前   规范与RFC 1866不同   ([RFC1866]第8.1.3节),其中   州:初始州有   选择第一个选项,除非a   SELECTED属性出现在任何   的元素。 自用户以来   代理行为不同,作者应该   确保每个菜单包含一个   默认预先选择的选项。

     

如果一个OPTION元素已选中   属性集,应该是   预先选定的。如果是SELECT元素   具有多个属性集和   不止一个OPTION元素有   他们应该选择属性集   都是预先选定的。已经被考虑了   如果有多个OPTION,则会出错   element具有所选的属性集   而SELECT元素没有   多重属性集。用户   代理商的处理方式可能有所不同   这个错误,但不应该预先选择   不止一个选择。

答案 1 :(得分:1)

不幸的是,@ Alerty错了。如果select元素上存在multiple属性,但没有选项元素具有selected属性,则默认情况下选择 no 元素。 (在Win 7上测试IE 9,FF 5,Chrome 13和Safari 5。)

那么,如果用户没有选择任何提交表单的内容,那么Web浏览器应该怎么做?它应该完全符合您的期望:不提交任何选择。这正是当前版本的HTML5规范所说的:

“multiple属性是布尔属性。如果属性存在,则select元素表示从选项列表中选择或更多选项的控件。”

http://dev.w3.org/html5/spec/Overview.html#the-select-element

相关问题