当没有从表单的菜单中选择任何选项,既没有名称也没有传递给服务器的值时,是否可以说


Is it right to say when no options are selected from menu in a form, neither name or value passed to the server

我正在做PHP验证,我正在阅读表单上的 w3.org。谁能澄清这个说法"如果未选择任何选项,则控件不成功,并且在提交表单时,名称或任何值都不会提交到服务器"。为了测试这一点,我创建了

<form method="get" action="#">
    <select name="select_name" >
       <option value="">Select one</option>
      <option value="one">Choice one</option>
       <option value="two" >Choice two</option>
       <option value="three">Choice three</option>
    </select>
</form>

当我打印GET数组时,我看到名称"select_name"总是传递给服务器。对于单选和复选框,这不是真的。但我不明白这句话想说什么。在选择选项期间是否可以传递"既不传递名称也不传递值"?

您引用的规范:

如果未选择任何选项,则控件不成功,并且在提交表单时,名称或任何值都不会提交到服务器。

。指示未选择任何选项时要执行的操作,但默认情况下,大多数浏览器将自动选择(下拉(select 元素的第一个选项。您是否在测试页面上没有看到页面加载时自动选择第一个选项"选择一个"?如果您随后在选择该选项的情况下提交了表单,则第一个选项的值为空字符串,则应具有名称为"select_name"的请求参数和空字符串的值。

在(非下拉(的情况下,选择多个元素:

<select name="select_name" multiple>

。默认情况下不选择任何选项,因此,如果您在未选择任何选项的情况下提交,您应该会看到您没有获得"select_name"请求参数。

注意:您用"PHP"标记了您的问题,但这不是PHP的事情。它是浏览器根据当时表单控件的状态形成请求。