Je dois enregistrer un gestionnaire pour un groupe de boutons radio. J'utilise JQuery et espère que sa méthode .change permettrait d'accomplir cela. Cependant, je n'ai pas connu le comportement souhaité.Comment écouter les modifications de la valeur sélectionnée d'un groupe de radio à l'aide de JQuery?
Voici un exemple d'extrait que j'ai écrit. Malheureusement, le "radioValueChanged" est seulement appelé sur le chargement initial. La sélection de true/false ne déclenche pas le gestionnaire.
<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>
Super merci. Comme vous pouvez le dire javascript/jquery est assez nouveau/rouillé. Donc '#' préfixe toujours un identifiant pas un nom ... bon à savoir :) Que fait exactement "$ (this) .is (": checked ")? Je pense que je veux le contraire de cela. Si aucune valeur n'est sélectionnée Je veux que la question soit cachée – Justin
@Justin Oui, les sélecteurs suivent réellement les règles du sélecteur CSS, vous pouvez rechercher w3 pour les sélecteurs css .. hiérarchie, nom, id etc. Le 'is' est aussi une fonction jQuery: http : //docs.jquery.com/Is (bien que je ne l'ai pas trouvé sur api.jquery.com ce qui me concerne) –
'is()' est * certainement * au sous-domaine api: [api.jquery.com /is/](http://api.jquery.com/is/) –