为什么<select>的value属性不能设置<select>的value属性?

3

假设有一个类似于选择的查询

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

我可以通过设置选中选项的"value"属性来改变它的值:
```html

我可以通过设置选中选项的"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> 元素的 value 属性选择选项比使用 <option> 元素的 selected 属性更有意义。
为什么 w3c 认为 <option value="x" selected><select value="x"> 更好呢?也许有一些我没看到的优势吗?
1个回答

1

无法确定他们当时在想什么,但有一些情况下value可能没有意义:

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

另外要记住,属性属性值是不同的。

从语义上讲,通过<option>列出可用选项列表,并通过select属性指示实际选择的选项(或选项)比将其与属性值协调更有意义。


HTML标准中是否有属性这个概念?我在维基百科上找不到,Google也没有在w3.org上找到任何相关信息。是这样的吗:“属性是节点(HTML元素)的值,您可以获取或设置”? - user4035
如果值无效,则可能与未选择任何带有“selected”属性的<option>相同(默认选择第一个选项)。我没有考虑<select multiple>,但它可能像类一样:您可以使用一个属性拥有多个类。但是也许从语义上讲你是正确的。 - Oriol
@user4035:是的。术语“属性”在文档对象模型(DOM)中使用。HTML属性作为元素对象上的属性公开。 - Ma3x

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接