Je voudrais demander s’il existe un moyen d’obtenir un nom de groupe de boutons radio dynamic, c’est-à-dire d’optimiser les 2 fonctions de clic suivantes en une seule en ayant [name=some_variable]
.
J’ai essayé:
$('input:radio').click(function() { alert($('input:radio:checked').attr('name')); });
mais il me renvoie toujours le nom du premier groupe de boutons radio cliqué.
$(document).ready(function(){ $('input:radio[name=q1]').click(function() { var ans1 = $('input[name=q1]:radio:checked').val(); getUserAnswer(1, ans1); }); $('input:radio[name=q2]').click(function() { var ans2 = $('input[name=q2]:radio:checked').val(); getUserAnswer(2, ans2); }); });
Q1
Q1 A
Q1 B
Q1 C
Q1 D
Q2
Q2 A
Q2 B
Q2 C
Q2 D
$('input:radio').click(function() { console.log($(this).attr('name')); });
Vous sélectionnez un nouvel ensemble d’éléments au clic, mais vous avez besoin de l’attr de l’élément actuel. Vous devez donc y faire référence avec ‘this’.
Quelque chose comme ce qui suit devrait fonctionner:
$('input').click(function() { var thisName = $(this).attr('name'); var qNum = thisName.subssortingng(1); var ans2 = $('input[name=' + thisName + ']:radio:checked').val(); getUserAnswer(thisName, ans2); });