设置选项值与getElementsByName()
有了这个字段集:设置选项值与getElementsByName()
<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>
感谢。
这是有点不清楚你在问什么。您是否只是要求在索引2处选择该选项?
document.getElementsByName('death')[0].selectedIndex = 2;
或者,你是否在指数2更改选项的值?
var d = document.getElementsByName('death')[0];
d.options[2].value = '-';
document.getElementsByName('death')[0] .selectedIndex = 2;很好。谢谢 – volvox 2010-02-26 18:55:51
你需要操纵你的选择对象的selected
属性,尝试
document.getElementsByName('death')[0].selectedIndex = 1;
在英语中,这个读“设置所选的选项与名称在文档中的第一个元素的第二个选项“死亡'”。
修复您的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>
感谢您的修复。你的建议也很好。 – volvox 2010-02-26 19:01:28
document.getElementsByName('death')[2]
返回第三个元素命名death
- 但你只能有一个同名的一个元素。相反,你想你想它的第三个选项命名death
(即一个索引0)的第一要素,然后:document.getElementsByName('death')[0].options[2].value = ...
你可以做到这一点使用jQuery ...很容易...
j("#death").val(2)
使用javascript框架绝对更好。但是,我想指出,他的HTML使用的是名称而不是ID。 – HackedByChinese 2010-02-26 18:43:19
我的错误。韩国社交协会。 – 2010-02-26 18:55:52
如果没有ID(或者,我实际上可以添加ID) – volvox 2010-02-26 20:58:58
这里有一个如何与getElementsByName访问特定的选项值警报例如
alert(document.getElementsByName('death')[0].options[0].value); // will return Dead
alert(document.getElementsByName('death')[0].options[1].value); // will return NotDead
你'' – 2010-02-26 18:36:12