在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";
答案 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