J’ai plusieurs radiobuttongroups et je dois exécuter un script lorsqu’ils sont vérifiés.
J’utilise le script suivant pour vérifier si l’un d’eux est coché, sinon, le colorie.
Comment puis-je faire le code, de sorte que lorsque tous les radiobuttongroups sont vérifiés, exécutez le script.
Le code qui vérifie si les radiobuttongroups sont vérifiés:
$('.aQuestion').each(function(){ if($(this).find('input[type="radio"]:checked').length > 0) { alert("checked"); } else { alert("not checked"); } });
Les radiobuttongroups (il y en a environ 90):
1. Question answer 1 answer 2 answer 3 answer 4 answer 5 2. Question answer 1 answer 2 answer 3 answer 4 answer 5
Merci d’avance
En supposant qu’il n’y ait qu’un seul groupe de boutons radio par question, vous n’avez pas besoin de les parcourir pour savoir s’ils ont tous été sélectionnés:
var $questions = $(".aQuestion"); if($questions.find("input:radio:checked").length === $questions.length) { // All Checked }
jsFiddle qui démontre ce qui précède.
Essaye ça:
$(document).on('ready change','.aQuestion',function(){ if($(this).find('input[type="radio"]:checked').length > 0) { alert("checked"); } else { alert("not checked"); } });
Code final:
jQuery('#submit').click(function(event) { event.preventDefault(); $('.aQuestion').each(function() { if($(this).find('input[type="radio"]:checked').length > 0) { $(this).addClass( "madeChoice" ); // Run css that hides the group } else { $(this).addClass( "didntMakeChoice" ); // Run css that highlight the group. } }); var $questions = $(".aQuestion"); if($questions.find("input:radio:checked").length === $questions.length) { alert("all checked"); // Send result to DB. } else { alert("Not Checked"); // Do nothing. } });