2009-08-24 13 views
6

Je souhaite modifier la valeur du champ d'entrée cachée lorsque les boutons radio sélectionnés:changement valeur du champ lorsque l'on sélectionne les boutons radio

<input type="radio" name="r1" value="10" />10 
    <br/> 
    <input type="radio" name="r1" value="45" />45 
    <br/> 
    <input type="hidden" name="sum" value="" /> 

par exemple lorsque l'utilisateur clique sur un des boutons de la valeur du changement de champ caché à cette valeur .

Répondre

13

Utilisez la propriété onClick:

<input type="radio" name="r1" value="10" onClick="document.getElementById('hidfield').value=this.value"/>10 
    <br/> 
    <input type="radio" name="r1" value="45" onClick="document.getElementById('hidfield').value=this.value"/> 
    45 
    <br/> 
    <input type="hidden" name="sum" value="" id="hidfield" /> 
+0

Ce serait l'option la plus facile – Dorjan

+0

thnx, cela a fonctionné, mais est-il un moyen de changer l'attribut de nom lorsque vous cliquez sur le bouton? – datisdesign

-1

crochet dans l'événement onclick pour le bouton radio "r1". Normalement, je suggère l'événement onchange mais dans IE il n'est pas déclenché jusqu'à ce que l'utilisateur "brouille" le bouton radio.

Si vous utilisez un framework comme jQuery, accrochez les événements d'une manière discrète et agréable ... mais si vous voulez une solution rapide et sale, ajoutez simplement les événements en ligne.

<input type="radio" name="r1" value="10" onclick="doIt(this);"/>10 
<br/> 
<input type="radio" name="r1" value="45" onclick="doIt(this);"/>45 
<br/> 
<input type="hidden" name="sum" value="" /> 

<script> 
    function doIt(obj){ 
    //alert('my value is now: ' + obj.value); 
    obj.form.elements['sum'].value = obj.value;//set hidden field to radio value 
    } 
</script> 
1

Vous pouvez par exemple

<input type="radio" id="radio1r1" name="r1" value="10" />10 
<br/> 
<input type="radio" id="radio2r1" name="r1" value="45" />45 
<br/> 
<input type="hidden" name="sum" value="" /> 

jQuery("input[id^='radio']").click(function() { 
    jQuery("input[name='sum']").val(jQuery(this).val()); 
} 

Alors lorsque l'utilisateur clique sur chaque radio que nous traitons par divers id avec la même début.

1

En utilisant jQuery serait:

$(":radio").click(function() { 
    var inputValue = $this.val(); 
    $(":hidden[name='sum']").val() = inputValue; 
$(":hidden[name='sum']").name() = "lalala"; 
    }); 

Je n'ai pas vérifié une deuxième fois que le code de sorte qu'il pourrait avoir besoin d'un peu de peaufinage.

+0

thnx mais ça n'a pas fonctionné pour moi! – datisdesign

+0

Avez-vous installé et configuré jQuery? – Dorjan

+0

oui je l'ai dans ma page – datisdesign