可能重复:
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调用之后,这是被解雇的。
答案 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”。我不知道为什么没有一个解决方案有效,但它现在正在运作。