0

私はいくつかの行(入力フィールド)を計算しようとしていますが、それは私には難しいです:(。
私が持っているhtmlコードは次のようになります:

<table>
<tr>
    <td>
    <input name="Field_Price_1" id="Field_Price_1" value="20.55" type="text">
    <input name="Field_Amount_1" id="Field_Amount_1" type="text">
    <input name="Field_SubTotal_1" id="Field_SubTotal_1" type="text">
    </td>
</tr>
<tr>
    <td>
    <input name="Field_Price_2" id="Field_Price_2" value="17.55" type="text">
    <input name="Field_Amount_2" id="Field_Amount_2" type="text">
    <input name="Field_SubTotal_2" id="Field_SubTotal_2" type="text">
    </td>
</tr>
<tr>
    <td>
    <input name="Field_Price_3" id="Field_Price_3" value="94.20" type="text">
    <input name="Field_Amount_3" id="Field_Amount_3" type="text">
    <input name="Field_SubTotal_3" id="Field_SubTotal_3" type="text">
    </td>
</tr>
<tr>
    <td>
    <input name="Field_Price_4" id="Field_Price_4" value="12.10" type="text">
    <input name="Field_Amount_4" id="Field_Amount_4" type="text">
    <input name="Field_SubTotal_4" id="Field_SubTotal_4" type="text">
    </td>
</tr>
<tr>
    <td>
    <input name="Field_Price_5" id="Field_Price_5" value="7.45" type="text">
    <input name="Field_Amount_5" id="Field_Amount_5" type="text">
    <input name="Field_SubTotal_5" id="Field_SubTotal_5" type="text">
    </td>
</tr>

したがって、各 Field_Amount_ から「keyup」をトリガーすることにより、すべての入力フィールド「Field_Price_」の合計を次のスパンに入れます。

<table>
<tr>
    <td><span id="PrintSum">0.00</span></td>
</tr>


次のことを試しました:

var total = 0;
var Price = $('input[id^=Field_Price_]').val();
   $.each($(Price), function(){
      total += $(this).val();
   });
$('#PrintSum').text(total);  

それではうまくいきません。
何が問題なのか知っていますか?どうもありがとうございました!

4

5 に答える 5

0

このJavaScriptを使用してください

$(':input[id^="Field_Price_"]').keyup(function() {
    var total = 0;
    var $inputs = $(':input[id^="Field_Price_"]');
    $inputs.each(function (index)
         {
           total += parseFloat($(this).val());
         });
    alert(total);
    $('#PrintSum').text(total);  
});

jsフィドル

于 2013-04-19T12:02:36.080 に答える
0

このソリューションはどうですか:

var $prices  = $('input[id^=Field_Price_]'),
    $amounts = $('input[id^=Field_Amount_]');

$prices.add($amounts).on('keyup', function() {
    var total = 0;
    $prices.each(function() {
        total += $(this).val() * $(this).next().val() || 0;
    });
    $('#PrintSum').text(total.toFixed(2));
})
.trigger('keyup');

http://jsfiddle.net/UFSvF/

ここで、金額だけでなく価格も変更すると、合計価格の再計算がトリガーされます。

于 2013-04-19T12:30:59.327 に答える
0

入力値をフロートに解析する必要があると思います。

var total = 0;
var Price = $('input[id^=Field_Price_]').val();
   $.each($(Price), function(){
      total += parseFloat($(this).val());
   });
$('#PrintSum').text(total);  
于 2013-04-19T11:40:25.983 に答える