0

数字のみを許可する複数のテキストボックス( classtxtsumを使用)があります。ユーザーがテキストボックスに入力したときに、これらすべてのテキストボックスの合計を計算するにはどうすればよいですか

var $txtb = $(':input.txtsum');
$txtb.on('change',function(){
    tot = 0.0;
    $txtb.each(function() {
        tot += parseFloat($(this).text());
    });
});

それを行うための正しい/より良い方法を提案できますか? これが私が試したものですhttp://jsfiddle.net/DPe4W/

4

2 に答える 2

4

変化する

tot += parseFloat($(this).text());

tot += parseFloat($(this).val()); 

、 などの.val入力要素の値を取得するために使用する必要があります。inputselect

また、以下のようにコードを変更しました。

デモ: http://jsfiddle.net/DPe4W/7/

var $txtb = $(':input.txtsum');
$txtb.on('keyup', function() {
    var tot = 0.0;
    $txtb.each(function() {
        var val = parseFloat(this.value);
        if (!isNaN(val)) {   
           tot += val;
        }
    });

    $("p").html(tot);
});
于 2012-11-05T16:27:40.037 に答える
0

.text()入力タイプでは機能しません。.val() 代わりに使用してください

それ以外の

 $(this).text()

使用する

($(this).val() ; // To calculate the value

完全なコード

    var $txtb = $(':input.txtsum');
$txtb.on('keyup', function() {
    tot = 0.0;
    $txtb.each(function() {
        var t = $(this).val() != '' ? $(this).val() : 0;
        tot += parseFloat(t);
    });
    $("p").html(tot);
});​

フィドルをチェック

于 2012-11-05T16:28:01.053 に答える