0

現在、チェックしたラジオボタンの値に基づいてスコアを計算するJS関数があります。これらのチェックされたラジオボタンが後でオフになったときに、関数がスコアフィールドを更新するようにしたい。

HTML:

 <input class="calc_1" name="1" id="sec_125" type="radio" value="4">
 <input class="calc_2" name="1" id="sec_126" type="radio" value="1">
 <input class="calc_3" name="1" id="sec_127" type="radio" value="2">
 <input class="calc_4" name="1" id="sec_128" type="radio" value="3">
 <input class="calc_1" name="2" id="sec_129" type="radio" value="4">
 <input class="calc_2" name="2" id="sec_130" type="radio" value="1">
 <input class="calc_3" name="2" id="sec_131" type="radio" value="2">
 <input class="calc_4" name="2" id="sec_132" type="radio" value="3">
 <input readonly name="score_1" id="score_1" type="text" value="">
 <input readonly name="score_2" id="score_2" type="text" value="">

JS:

function getTotalScore(sec){
   var total = 0; 
   jQuery(".calc_"+sec+":checked").each(function() {
    total += parseInt(jQuery(this).val(),10);
    count++;
});

 jQuery("#score_"+sec).val(total);

}

jQuery(document).ready(function(){
    jQuery(".calc_1").change(function() {
      getTotalScore("1")
    });
   jQuery(".calc_2").change(function() {
    getTotalScore("2")
   });
});

現在、私のコードは、クラス「calc_1」と「calc_2」のラジオボタンがチェックされているときにscore_1フィールドとscore_2フィールドを更新しますが、ユーザーが同じ入力グループから別のラジオボタンを選択してもこれらの値は変更されません。

たとえば、ユーザーが最初にsec_125とsec_130を選択した場合、score_1は4で、score_2は1である必要があります。ユーザーが後でsec_126を選択することを決定した場合、score_1は実際には0であるはずなのに4のままです。

以前にチェックしたラジオボタンがオフになった直後にスコアフィールドを更新するJS関数を作成するにはどうすればよいですか?

ありがとう!

4

3 に答える 3

0

変更するたびにすべてを再計算します。

jQuery(document).ready(function(){
    jQuery(".calc_1, .calc_2").change(function() {
      calculateScore("1")
      calculateScore("2")
    });
});
于 2012-10-03T22:34:14.173 に答える
0

changeすべてのラジオボタンでイベントをバインドする必要があります

jQuery(document).ready(function(){
   jQuery(".calc_1, .calc_2, .calc_3, .calc_4").change(function() {
     calculateScore("1");
     calculateScore("2");
   });
});
于 2012-10-03T22:37:38.777 に答える
0

これを試して

$(document).ready(function(){
    $(".calc_1, .calc_2").on('click',function() {
      if( ! $(this).is(':checked'){ // Condition When Unchecked
          calculateScore("1");
          calculateScore("2");
      }
    });
});
于 2012-10-03T22:39:24.113 に答える