すべて、次のコードを使用して、すべてのラジオボタングループがチェックされているかどうかを確認します。
jQuery("input[type=radio]").click(function(event){
var num_questions = jQuery("#num_questions").val(),
new_questions = parseInt(num_questions, 10) + 1,
radios = jQuery("input[type=radio]"),
all_answered = true;
for(var i=1; i<new_questions; i++){
alert(i);
var group = radios.filter('[name=rating_value_'+i+']');
alert(group.filter(":checked").length);
if(group.filter(":checked").length==0){
all_answered = false;
break;
}
}
if (all_answered) {
// a group was found that didn't have an answer selected
// so do something
jQuery("#no_answers").html('');
}
});
これはチェックを行うのに適していますが、問題があります。このコードは、実際のラジオボタンがクリックされたとマークされる前に実行されるため、最後のラジオボタンであってもクリックされていないボタンがまだあると見なされます。どうすればこれを修正して、私がそうするように動作するようにできますか?