获取并设置选定的值

时间:2009-12-22 16:33:21

标签: javascript

REFRASE问题:

我有6个选择。当我从select1中选择值时,我从服务器端调用一些函数,然后从该函数中获取JSON数组。

我从这个数组得到最多5个值,有时候我会得到20,30,40,50,60但有时候是20,30或者只有20个。

这些值对应于select2,select3,select4,select5,select6选项值索引。所以如果数组返回20,30,40,50,60 - > select2选项索引值应设置为20,选择3到30等。如果数组返回20,则select2索引值应设置为20,其他所有索引值应设置为0。

最好的方法是什么?

谢谢

3 个答案:

答案 0 :(得分:2)

var s1 = document.getElementById("select1");
var s2 = document.getElementById("select2");
s2.selectedIndex = s1.selectedIndex;

或者,如果您希望在更改第一个<select>时发生这种情况:

s1.onchange = function() {
    s2.selectedIndex = s1.selectedIndex;
};

答案 1 :(得分:0)

//get
var sel1Index = document.getElementById("select1").selectedIndex;
//just in case you want the selected text too
var sel1Text = document.getElementById("select1").options[selectedIndex].text; 

//set
document.getElementById("select2").selectedIndex = sel1Index;

答案 2 :(得分:0)

要获取值或所选值的索引,这些工作:

document.getElementById("select1").value;
document.getElementByID("select2").selectedIndex;

要设置值,请使用相同的值,但请指定:

document.getElementById("select1").value = "whatever";
document.getElementById("select2").selectedIndex = 3;

因为您的列表值不相同,我假设您要使用索引;即,在select1中选择“one”会导致select2变为“7”等等。

您可以使用以下方式执行此操作:

document.getElementById("select2").selectedIndex
  = document.getElementById("select1").selectedIndex;

如果您希望在另一个列表更改时更改一个列表,从而有效地保持它们同步,您可以将函数绑定到select的“onchange”:

<script type="text/javascript>
function select1_onchange() {
  document.getElementById("select2").selectedIndex
    = document.getElementById(select1").selectedIndex;
}

function select2_onchange() {
  document.getElementById("select1").selectedIndex
    = document.getElementById(select2").selectedIndex;
}

</script>

<select name="select1" id="select1" onchange="select1_onchange">
...


<select name="select2" id="select2" onchange="select2_onchange">
...