使用javascript选择一个选项

时间:2012-09-03 03:31:38

标签: javascript html option

  

可能重复:
  How to select an option in a select box by the value of the option using 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 = n替换selector.options[n].selected = true。但是,它永远不会为我选择。它始终显示下拉列表顶部的项目。

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

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

4 个答案:

答案 0 :(得分:0)

请写下这个

document.getElementById("action_person").firstChild.value="person";

答案 1 :(得分: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>

答案 2 :(得分:0)

在您的代码中:

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

如果options[n]不存在,表达式将返回'undefined',而不是null。你也可以写一下:

 while (selector.options[n])

然后:

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

options collection没有selectedIndex属性,select元素属性。所以:

       selector.selectedIndex = n;

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

       selector.options[n].selected = true;

除非你在迭代多次选择,否则下一行可以是一个return语句:

       return;

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

答案 3 :(得分:0)

我最终循环选项,然后修改DOM以在相应的选项中包含selected =“selected”。我不知道为什么没有一个解决方案有效,但它现在正在运作。