HTML选择选项显示"错误"值

时间:2015-08-20 23:06:20

标签: javascript html

在express中,我正在渲染一个用于填充带有值的表单的车把模板。

要填充我的选择选项,我设置"值"我的选择节点的属性如下:

<select class="inputField" name="gender" value="female">
    <option value="male">Männlich</option>
    <option value="female">Weiblich</option>
</select>

虽然可以选择男性选项。任何人都可以解释为什么会这样吗?

编辑1:

我知道所选的属性,但是在模板时它会使事情变得更复杂,所以我宁愿传递所选的值。

但是要更准确地说明我原来的问题:

为什么这样做呢:

var genderEl = document.getElementById('genderSelect');
    genderEl.value = "female";

5 个答案:

答案 0 :(得分:2)

在选择输入中预先选择选项的正确方法是:

<option value="female" selected="selected">Weiblich</option>

如果您使用的是xhtml或html4,则应更改选中 selected =“selected”

答案 1 :(得分:1)

那不是select的工作方式。您需要在selected上使用option属性,如下所示:

<select class="inputField" name="gender">
    <option value="male">Männlich</option>
    <option value="female" selected="1">Weiblich</option>
</select>

答案 2 :(得分:1)

我认为你正在寻找这样的东西:

<select class="inputField" name="gender">
    <option value="male">Männlich</option>
    <option value="female" selected>Weiblich</option>
</select>

答案 3 :(得分:1)

  

为什么会这样:var genderEl = document.getElementById('genderSelect'); genderEl.value = "female";

仅仅因为DOM使用不同的属性; - )

回答原始问题:There is no value attribute for selects in HTML,但there is one in DOM。因此,如果您需要纯HTML解决方案,则必须坚持使用selected属性。

答案 4 :(得分:0)

要选择使用选项:

fix :: (Eq a) => QTree a -> QTree a
fix (Leaf a) = Leaf a
fix (Internal nw ne sw se) =
  merge (Internal (fix nw) (fix ne) (fix sw) (fix se))
  where merge (Internal (Leaf w) (Leaf x) (Leaf y) (Leaf z))
          | all (== w) [x, y, z] = Leaf x
        merge other = other

see