2009-08-24 5 views
6

quiero cambiar el valor del campo de entrada oculta cuando los botones de radio seleccionados:cambio de valor de campo cuando los botones de selección de 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="" /> 

por ejemplo, cuando el usuario haga clic sobre uno de los botones el valor de cambio de campo oculto a ese valor .

Respuesta

13

utilizar la propiedad 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

Esta sería la opción más fácil – Dorjan

+0

thnx, funcionó, pero ¿hay alguna manera de cambiar el atributo de nombre al hacer clic en el botón? – datisdesign

-1

enganche en el evento onclick para el botón de radio "r1". Normalmente sugeriría el evento onchange pero en IE no se dispara hasta que el usuario "desenfoque" el botón de radio.

Si está utilizando un marco como jQuery, enganche los eventos de una manera agradable y discreta ... pero si quiere una solución rápida y sucia, simplemente agregue los eventos en línea.

<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

Usted puede tratar por ejemplo

<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()); 
} 

Así que cuando el usuario haga clic en cada radio que manejarlo por diversos id con mismo principio.

1

Usando jQuery sería:

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

no he doble comprobación de que el código por lo que podría necesitar un poco de ajuste.

+0

¡pero no funcionó para mí! – datisdesign

+0

¿tiene jQuery instalado y configurado? – Dorjan

+0

sí lo tengo en mi página – datisdesign

Cuestiones relacionadas