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。
最好的方法是什么?
谢谢
答案 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">
...