2015-08-20 18 views
0

在表达式中,我正在渲染一个用值填充表单的句柄模板。显示“错误”值的HTML选择选项

要填充我的选择选项设置我的选择节点的“值”属性,像这样:

<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"; 

回答

1

这不是如何select的工作。您需要使用selected属性上一个option,像这样:

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

http://stackoverflow.com/questions/78932/how-do-i-programatically-set-the-value-of-a-select-box-element-using-javascript –

+0

我认为它是,因为编程设置JavaScript的结果工作的“选择”节点的值 –

+0

@MaxBumaye那么,HTML和JavaScript并不总是以相同的方式工作。 :) –

0

选择一个选项,使用:

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

see

1

正确的方式预先选择一个选项选择输入为:

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

如果您是usi NG XHTML或HTML4,你应该改变选择选定= “选择”

0

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

<select class="inputField" name="gender"> 
    <option value="male">Männlich</option> 
    <option value="female" selected>Weiblich</option> 
</select> 
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属性。