设置选项值与getElementsByName()

设置选项值与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> 

感谢。

+1

你'' 2010-02-26 18:36:12

这是有点不清楚你在问什么。您是否只是要求在索引2处选择该选项?

document.getElementsByName('death')[0].selectedIndex = 2; 

或者,你是否在指数2更改选项的值?

var d = document.getElementsByName('death')[0]; 
d.options[2].value = '-'; 
+0

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> 
+0

感谢您的修复。你的建议也很好。 – 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) 
+0

使用javascript框架绝对更好。但是,我想指出,他的HTML使用的是名称而不是ID。 – HackedByChinese 2010-02-26 18:43:19

+1

我的错误。韩国社交协会。 – 2010-02-26 18:55:52

+0

如果没有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