2009-06-29 2 views
0

Si vous vouliez changer la valeur du champ caché à quelque chose non dans la valeur de la liste déroulante comme siGoutte mise à jour d'une HiddenField avec une valeur sans rapport avec

<form> 
    <select id="dropdown" name="dropdown" onchange="changeHiddenInput(this)"> 
     <option value="foo">One - 42</option> 
     <option value="bar">Two - 40</option> 
     <option value="wig">Three - 38</option> 
    </select> 

    <input type="hidden" name="hiddenInput" id="hiddenInput" value="" /> 
</form> 

Et je veux passer (si deux sélectionné) dropdown = "bar" et hiddenInput = "40"

La valeur doit être transmise mais doit être affectée au champ caché.

Qu'en pensez-vous? Auriez-vous besoin de si alors? ou pourriez-vous avoir quelque chose comme

<form> 
    <select id="dropdown" name="dropdown" onchange="changeHiddenInput(this)"> 
     <option value="foo" onchange="set hiddenInput - 42">One - 42</option> 
     <option value="bar" onchange="set hiddenInput - 40">Two - 40</option> 
     <option value="wig" onchange="set hiddenInput - 38">Three - 38</option> 
    </select> 

    <input type="hidden" name="hiddenInput" id="hiddenInput" value="" /> 
</form> 

Répondre

0

Vous avez la bonne idée avec l'attribut onchange. Votre fonction pourrait ressembler à:

function changeHiddenInput(mySelect) { 

    var map = {foo: "42", bar: "40", wig: "38"}; 
    var index = mySelect.selectedIndex; 
    var value = mySelect.options[index].value; 

    var hiddenInput = document.getElementById("hiddenInput"); 
    hiddenInput.value = map[value]; 
} 

La variable map-il des cartes de valeur de chaque option sur ce que l'attribut caché doit être réglé sur.

+0

Comment est-ce que j'appellerais cette fonction sur le changement?