拥有此字段集:
<fieldset>
<legend>[*death]</legend>
<select name=death style="width: 120px">
<option value=Dead>[*died]
<option value=NotDead>[*alive]
<option value="" selected>-
</select>
</fieldset>
我想将[2].value
设置为"-"
。
我尝试过没有取得任何成功:
document.getElementsByName('death')[2].checked = 'true';
document.getElementsByName('death')[2].value = '-';
相同类型的代码适用于收音机盒,复选框或表单中的其他输入。如何选择选项(不是输入)?
由于
[编辑]当然,适当的字段集是:
<fieldset>
<legend>[*death]</legend>
<select name="death" style="width: 120px">
<option value="Dead">[*died]</option>
<option value="NotDead">[*alive]</option>
<option value="" selected>-</option>
</select>
</fieldset>
感谢。
答案 0 :(得分:7)
有点不清楚你在问什么。您只是要求选择索引2处的选项吗?
document.getElementsByName('death')[0].selectedIndex = 2;
或者,您是否要求更改索引2处的选项值?
var d = document.getElementsByName('death')[0];
d.options[2].value = '-';
答案 1 :(得分:2)
您需要操纵选择对象的selected
属性,尝试
document.getElementsByName('death')[0].selectedIndex = 1;
在英文中,这里写着“将所选选项设置为文档中第一个元素的第二个选项,名称为'death'”。
修复HTML可能会使您的javascript结果更具可预测性。关闭标记,引用属性值,如下所示:
<fieldset>
<legend>[*death]</legend>
<select name="death" style="width: 120px">
<option value="Dead">[*died]</option>
<option value="NotDead">[*alive]</option>
<option value="" selected>-</option>
</select>
</fieldset>
答案 2 :(得分:1)
你可以使用jQuery做到这一点......很容易......
j("#death").val(2)
答案 3 :(得分:0)
document.getElementsByName('death')[2]
返回名为death
的第三个元素 - 但您只有一个具有该名称的元素。相反,您需要名为death
的第一个元素(即索引为0的元素),然后您需要第三个选项:document.getElementsByName('death')[0].options[2].value = ...
答案 4 :(得分:0)
以下是如何使用 getElementsByName
访问特定选项值的提示示例alert(document.getElementsByName('death')[0].options[0].value); // will return Dead
alert(document.getElementsByName('death')[0].options[1].value); // will return NotDead