2017-07-09 16 views
0

選択したチェックボックスとラジオボタンの値を関数に追加しようとしています。チェックボックスの値とラジオボタンの機能を追加できる関数を作成しましたが、2つを1つの作業関数にまとめるのに問題があります。私は私の問題は、関連付けられた両方のラジオやチェックボックスの要素を持っていると思う.click()ラジオボタンとチェックボックスに同じイベントハンドラを追加します

私のコードはここで見ることができます: https://jsfiddle.net/Buleria28/nz43u7x8/2/

HTMLは次のとおりです。

<input type="checkbox" value="1" />test 1<br/> 
<input type="checkbox" value="2" />test 2<br/> 
<input type="checkbox" value="3" />test 3<br/> 

<input type="radio" name="test" value="1" />test 4 
<input type="radio" name="test" value="2" />test 5 
<div id='sum'></div> 

jQueryのは、次のとおりです。

jQuery(document).ready(function($) { 
var sum = 0; 

$("input:checkbox"),$("input:radio").click(function() { 
    sum = 0; 
    $("input:checkbox:checked").each(function(idx, elm) { 
     sum += parseInt(elm.value, 10); 
    }); 

    sum = 0; 
    $("input:radio:checked").each(function(idx, elm) { 
     sum += parseInt(elm.value, 10); 
    }); 
    $('#sum').html(sum); 
    }); 
}); 

答えて

1

あなたはソリューションhttps://jsfiddle.net/nz43u7x8/5/

jQuery(document).ready(function($) { 
    var sum = 0; 

    $("input:checkbox, input:radio").click(function() { 
     sum = 0; 
     $("input:checkbox:checked").each(function(idx, elm) { 
      sum += parseInt(elm.value, 10); 
     }); 

     $("input:radio:checked").each(function(idx, elm) { 
      sum += parseInt(elm.value, 10); 
     }); 
     $('#sum').html(sum); 
    }); 
}); 
で行きます
2

実際にはcomma operatorを使用していますが、イベントハンドラをセコnd jQueryオブジェクト。代わりにCSSセレクタに似jQueryのコンストラクタの最初の引数にカンマを使用して、実際のセレクタを組み合わせる:

$("input:checkbox, input:radio").click(function() { 
    … 
}); 
ここ
関連する問題