1

チェックされているときに、さまざまなチェックボックスの値を取得するのに少し問題があります。これが私のコードです

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.js"></script>
<script>
 $(document).ready(function(){
    $('input[type="checkbox"]').bind('click',function() 
    {
   var waterdm = $('#waterdm').val();
  $("#price").val(waterdm);
 });
});
</script>

<p><input type="checkbox" id="waterdm"  name="waterdm" value="10" />Water Damage</p>
<p><input type="checkbox" id="screendm" name="screendm" value="20" />Screen Damage</p>
<p><input type="checkbox" id="Chargerdm" name="Chargerdm" value="30" />Charger Damage</p>
<p><input type="checkbox" id="hdphdm" name="hdphdm" value="10" />Headphone Damage</p>

<p>
 Calculated Price: <input type="text" name="price" id="price" />
</p>

私が欲しいのは、ユーザーがチェックボックスをチェックインするたびに、それらの値を取得し、別の入力ボックスにチェックインされている各チェックボックスの値の合計を表示する必要があることです。これは、チェックされている各チェックボックスの値を合計する必要があることを意味します。ユーザーがチェックボックスのいずれかをオフにした場合、その値はその合計から差し引かれます。私はjqueryの経験が十分ではありません。私を助けてください。

4

5 に答える 5

2

cheboxes を反復処理する必要があります。そしてchange、チェックボックスの観点から話しているとき、イベントはより理にかなっています..

on代わりにイベントを添付するために使用しますbind

$(document).ready(function () {
    // cache the inputs and bind the events
    var $inputs = $('input[type="checkbox"]')
    $inputs.on('change', function () {
        var sum = 0;
        $inputs.each(function() {
        // iterate and add it to sum only if checked
           if(this.checked)
               sum += parseInt(this.value);
        });
        $("#price").val(sum);
    });
});

フィドルをチェック

于 2013-07-29T07:49:14.323 に答える
2
 $(document).ready(function () {
     var waterdm = 0;
     $('input[type="checkbox"]').bind('click', function (e) {
         if (this.checked) {
             waterdm += eval(this.value);
         } else {
             waterdm -= eval(this.value);
         }

         $("#price").val(waterdm);
     });
 });

デモはこちら

于 2013-07-29T07:53:01.923 に答える
1

これを試して

 $(document).ready(function(){
   var waterdm=0;  
   $('input[type="checkbox"]').on('click',function() 
    {
    waterdm = waterdm+parseInt($(this).val());
    $("#price").val(waterdm);
 });
});

デモ

于 2013-07-29T07:52:09.910 に答える
1

次のコードを使用できます

$(document).ready(function(){
    $('input[type="checkbox"]').click(function() 
    {
        var val = 0;
        $('input[type="checkbox"]:checked').each(function(){
            val+=parseInt($(this).val());
        });
          $("#price").val(val);
     });
});

デモ

于 2013-07-29T07:57:20.223 に答える
0

チェックしたチェックボックスをすべて合計したい場合は、次のようにしてみてください。

$('input[type="checkbox"]').bind('click',function() 
    {
        var sum = 0;
        $('input[type="checkbox"]:checked').each(function(){
           var val = parseInt($(this).val());
           sum += val;
        });
       $("#price").val(sum);
 });
于 2013-07-29T07:52:28.990 に答える