为什么<select>的value属性没有设置</select>的value属性?

时间:2013-07-19 21:52:53

标签: html html-select selected

假设选择

<select name="myselect" id="myselect">
  <option value="a">A</option>
  <option value="b">B</option>
</select>

我可以设置所选选项,将其更改为value属性:

document.getElementById('myselect').value = 'b';

但我无法使用value属性执行此操作,因此以下操作无效:

<?php
  $myselectValue = $_GET['myselect'] ?: 'a';
  // Do something with $myselectValue
?>
<select name="myselect" id="myselect" value="<?php echo $myselectValue; ?>">
  <option value="a">A</option>
  <option value="b">B</option>
</select>

而且,我必须编写更丑陋,更不干净的服务器端代码。

我认为选择包含<select>的{​​{1}}属性而不是value的{​​{1}}属性的所选选项会更有意义。

为什么w3c认为<option>优于selected?也许我没有看到任何优势?

1 个答案:

答案 0 :(得分:1)

没有人知道他们在想什么,但有几种情况value可能没有意义:

  • 该值无效
  • 使用<select multiple>

另请注意,属性属性不同。

从语义上讲,让可用选项列表(通过<option>)和select属性指示实际选择的选项(或选项)更有意义,而不是必须将其与属性值。