ラジオボタンとマルチ選択ボタンが選択されているかどうかを一括チェック


      ,        ,              ,              ……  text           required     ,      html             。               ,        :

var radio = document.getElementsByName("question");for(i=0;iif(radio[i].checked){alert(radio[i].value)}}しかし、これは単一選択問題のセットに対する解決策にすぎず、複数の単一選択問題がある場合、各問題が選択されていることが保証されない.私のページはこのような構造です:ラジオの問題1:複数選択の問題N:だから、ネット上で検索する方法はすべて私の具体的な問題を解決することができないようで、自分で考えることを通じて、最初は1つの簡単な方法に付き合って、大体構想はこのようです:まずページがどれだけ少ないグループの問題(総数がNであると仮定します)を検出して、それからユーザーを通じて毎回click事件を通じて、ある変数(Mと仮定)に1を加算します.もちろん、このclickは1回目のクリックしか加算できません.2回目のクリックは加算されません.jqueryにはone関数があります.そして,ユーザがコミットすると,比較NとMが等しいかどうか,等しくなければ完了していないことを示す.実装コードは次のとおりです:do_qid = 0;//問題の作成回数//具体的な問題のオプションをクリックすることで、問題の作成回数$('div.choice_body')を記録します.one('click',function(){do_qid++;});
$('form').on('submit',function(){
    var num = $('div.high_light').length;//  
    if(num > do_qid){
        alert('      ,      !');
        return false;
    }else{
        return true;
    }

});
      “    ” ,            ,                     ,         ,      “     ,         ”     。
  ,        ,              。             。                  ,             ,       ,      :
$('form').on('submit',function(){
    if(submit_check()){
        $('input[type="submit"]').addClass('disabled').val('    ,   ...');
        return true;
    }else{
        alert('      ,      !');
        return false;
    }
});
function submit_check(){
    $.each($('.choice_body'),function(index,fn){
        var type = $(fn).find('input').attr('type');
        if(type == 'radio' || type == 'checkbox'){
            var input_val = $(fn).find('input:checked').val();
            if(input_val){
                console.log(index,input_val);
            }else{
                return false;
            }
        }
    });
    return true;
}

    _______________________________
         ,     ~!            ~!