0

可能重复:
如何使用Javascript通过选项的值在选择框中选择一个选项?

我有一个下拉菜单,我想在 ajax 调用中选择它。这是我目前正在使用的:

var selector = document.getElementById("action_person").firstChild;

var n = 0;
while(selector.options[n] != null)
{
   if(selector.options[n].value == "person")
   {
      selector.options.selectedIndex = n;
   }                    
   n++;
}

我也试过selector.options.selectedIndex = nselector.options[n].selected = true. 但是,它从不为我选择。它始终在下拉列表的顶部显示该项目。

我已经验证下拉列表中确实存在值“person”,并且变量“selector”确实指向有效的下拉列表。我在这里做错了什么?

编辑:在被明显的问题轰炸之后,我意识到不清楚这是在 ajax 调用之后被解雇的。

4

4 回答 4

0

在您的代码中:

> while(selector.options[n] != null)

如果options[n]不存在,则表达式将返回“未定义”,而不是 null。你也可以写:

 while (selector.options[n])

然后:

> {
>   if(selector.options[n].value == "person")
>   {
>      selector.options.selectedIndex = n;

options 集合没有属性,而selectedIndexselect 元素有。所以:

       selector.selectedIndex = n;

或者您可以将特定选项的 selected 属性设置为 true:

       selector.options[n].selected = true;

除非您正在迭代多项选择,否则下一行可以是 return 语句:

       return;

请注意,您还可以将选项的defaultSelected属性设置为true也,然后如果表单被重置(例如通过单击重置按钮),该选项将被设置为选中。

于 2012-09-03T04:27:21.103 回答
0

我最终遍历了这些选项,然后修改了 DOM 以在适当的选项中包含 selected = "selected" 。我不知道为什么给出的解决方案都不起作用,但它现在正在起作用。

于 2012-09-03T05:04:54.937 回答
0

就写这个

document.getElementById("action_person").firstChild.value="person";
于 2012-09-03T03:33:57.130 回答
0

这是如何运作的?或者让我们知道您的测试网络浏览器。

<select name="selector">
<option>Foo</option>
<option>Bar</option>
<option>Baz</option>

<script type="text/javascript">
    var selector = document.all('selector');
    var setSelectedItem = function(content){
        for(var i=0;i<selector.children.length;i++){
            if(selector.children[i].value == content){
                selector.selectedIndex = i;
            }
        }
    }
    setSelectedItem("Baz")
</script>
于 2012-09-03T04:18:52.837 回答