0

問題は、要素 sumirovalis の選択が互いに..「data-price」で指定された要素の値です。私のコードは有効ではなく、適切に処理されていません。いつでも金額を変更することが望ましいです。条件付きでご協力いただきありがとうございます

html

<input name="tarifs" id="tarifs2" type="radio" data-price="590" value="Abs">
<input name="tarifs" id="tarifs1" type="radio" data-price="540" value="Abs"><br/>
<input name="tv[]" id="tv3" type="checkbox" data-price="150" value="Abs">
<input name="tv[]" id="tv2" type="checkbox" data-price="100" value="Abs"><br/>
<input name="tv2[]" id="tv4" type="checkbox" data-price="250" value="Abs">
<input name="tv2[]" id="tv5" type="checkbox" data-price="350" value="Abs"><br/>
Sum: <span id="checkout-sum"></span></div>

JS

$("input[name=tarifs]").keyup(function() {
    var sum1 = $("input[name=tarifs]").data("price");
    var sum2 = $("input[name=tv[]]").data("price");
    var sum3 = $("input[name=tv2[]]").data("price");

    var total = sum1 + sum2 + sum3;

    $("#checkout-sum").val(total);
});

jsfiddle デモ

4

3 に答える 3

1

イベントを使用changeし、チェックされた入力のみを探します。これは、表示されているラジオまたはチェックボックスのいずれかが変更されたときに機能します

$inputs=$('#tarifs1,#tarifs2,#tv2,,#tv3,#tv4,#tv5').change(function(){
    var total=0;
    $inputs.filter(':checked').each(function(){
        total+= $(this).data('price');
     });
    $("#checkout-sum").text(total);
})

DEMO

于 2013-11-11T10:38:10.830 に答える
0

これを試してください:jQueryセレクターで不足している引用符: $("input[name= 'tv[]' ]

$("input[name=tarifs],[name='tv[]'],[name='tv2[]']").change(function() {
    var sum1 = $("input[name=tarifs]:checked").data("price"); 
    var sum2 = $("input[name='tv[]']:checked").data("price");    
    var sum3 = $("input[name='tv2[]']:checked").data("price");  
    var total = sum1 + sum2 + sum3;
  $("#checkout-sum").html(total);
});

デモ

別の方法:

$input = $("input[name=tarifs],[name='tv[]'],[name='tv2[]']");

$input.change(function() {
    var sum = 0;
    $input.filter(':checked').each(function(){
       sum = sum + $(this).data("price");
    });
  $("#checkout-sum").html(sum);
});

デモ

于 2013-11-11T10:34:03.843 に答える