Necesito registrar un controlador para un grupo de botones de opción. Estoy usando JQuery y esperaba que su método .change lo lograría. Sin embargo, no he experimentado el comportamiento deseado.¿Cómo escucho los cambios en el valor seleccionado de un RadioGroup usando JQuery?
Aquí hay un fragmento de muestra que he escrito. Lamentablemente, el "radioValueChanged" solo se invoca en la carga inicial. Seleccionar verdadero/falso no activa el controlador.
<html>
<script src="jquery-1.4.2.min.js" type="text/javascript"></script>
<form id="myForm">
<div id="Question1Wrapper">
<div>
<input type="radio" name="controlQuestion" id="valueFalse" value="0" />
<label for="valueFalse">
False</label>
</div>
<div>
<input type="radio" name="controlQuestion" id="valueTrue" value="1" />
<label for="valueTrue">
True</label>
</div>
</div>
<div id="Question2Wrapper">
<div>
<label for="optionalTextBox">
This is only visible when the above is true</label>
<input type="text" name="optionalTextBox" id="optionalTextBox" value="" />
</div>
</div>
<script type="text/javascript">
jQuery(document).ready(function()
{
$("#controlQuestion").change(radioValueChanged('controlQuestion'));
})
function radioValueChanged(radioName)
{
radioValue = $('input[name=' + radioName + ']:checked', '#myForm').val();
alert(radioValue);
if(radioValue == 'undefined' || radioValue == "0")
{
$('#Question2Wrapper:visible').hide();
}
else
{
$('#Question2Wrapper:visible').show();
}
}
</script>
</form>
Awesome thanks. Como puede ver, javascript/jquery es bastante nuevo/está oxidado. Así que '#' siempre prefija una identificación, no un nombre ... es bueno saber :) ¿Qué hace exactamente "$ (this) .is (": checked ")? Estoy pensando que quiero lo opuesto a eso. si no se selecciona ningún valor, quiero que se oculte la pregunta. – Justin
@Justin Sí, los selectores siguen realmente las reglas del selector CSS, puede buscar w3 para selectores css ... jerarquía, nombre, id. También el 'es' es una función jQuery: http : //docs.jquery.com/Is (aunque no lo encontré en api.jquery.com lo cual me preocupa). –
'is()' es * definitivamente * en el subdominio api: [api.jquery.com /is/](http://api.jquery.com/is/). –