Pregunta

Quiero cambiar el valor del campo de entrada oculta cuando se seleccionan los botones 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 en uno de los botones el valor de cambio de campo oculto a ese valor.

¿Fue útil?

Solución

Utilice 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" />

Otros consejos

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.

El uso de jQuery sería:

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

No he doble comprobado que el código por lo que podría necesitar un poco de ajuste.

gancho en el evento onclick para el botón de radio "R1". Normalmente me gustaría sugerir el evento onchange, pero en IE no se dispara hasta que el usuario "difumina" el botón de radio.

Si está utilizando un marco como jQuery, gancho en los acontecimientos de una manera discreta agradable ... pero si quieres una solución rápida n sucio, sólo tiene que añadir 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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top