2009-12-22 4 views
2

QUESTION REFRASE:obtenir et définir la valeur sélectionnée

J'ai 6 sélectionne. Quand je choisis la valeur de select1 j'appelle une certaine fonction du côté de serveur et j'obtiens le tableau de JSON de cette fonction.

je reçois 5 valeurs au maximum de ce tableau, parfois je vais 20,30,40,50,60 mais parfois 20,30 ou juste 20.

Ces valeurs correspondent à select2, Sélection3, select4 , select5, select6 index de valeur d'option. Donc, dans le cas où le tableau renvoie 20,30,40,50,60 -> select2 l'option index doit être définie sur 20, select3 sur 30 etc. Et si array renvoie seulement 20 then select2, la valeur de l'index doit être 20 et toutes les autres valeurs d'index à 0.

Quelle est la meilleure façon de faire cela?

Merci

Répondre

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

Ou, si vous voulez que cela se produise lorsque le premier <select> est changé:

s1.onchange = function() { 
    s2.selectedIndex = s1.selectedIndex; 
}; 
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; 
0

Pour obtenir une valeur, ou l'indice de la valeur sélectionnée , ces travaux:

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

Pour définir une valeur, utilisez la même, mais Assign:

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

Parce que vos valeurs de liste sont disimilar, je suppose que vous voulez utiliser l'index; à savoir, sélectionner « un » dans select1 causerait select2 pour passer à « sept », etc.

Vous pouvez le faire en utilisant:

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

Si vous voulez une liste à changer lorsque les autres changements, efficacement en les synchronisant, vous pouvez lier des fonctions à l'onchange du select:

<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"> 
... 
Questions connexes