2

テキスト ボックスを動的に生成し、jquery を使用してその値を計算したいと考えています。

テキスト ボックスの名前は次のとおりです。

A[1] , B[1]  - on change event , Alert SUM of values of A[1] and B[1]

A[2] , B[2]  - on change event , Alert SUM of values of A[2] and B[2] 

A[3] , B[3]   - on change event , Alert SUM of values of A[3] and B[3]

.
.
.
.
A[10] , B[10]   - on change event , Alert SUM of values of A[10] and B[10]

このタスクのために jquery で関数を作成する方法。このタスクを達成するのを手伝ってください。

私はこのコードを持っていますが、すべてのテキストボックス A と B のためですが、 A[1] と B[1] の SUM 、 A[2] と B[2] の SUM のように SETS OF VALUES を指定したいです... ....

$("input[type='text'][name^='A'] ,input[type='text'][name^='B']").
keyup(function(){ 

alert(sumThemUp());

});


function sumThemUp(){
var sum = 0;

$("input[type='text'][name^='A'] ,input[type='text'][name^='B']").
each(function(){

sum+= parseInt($(this).val());

});

return sum;

    };

私のHTMLは:

<input type="text" name="A[1]">
<input type="text" name="B[1]">
<input type="text" name="A[2]">
<input type="text" name="B[2]">
.
.
.
.
.<input type="text" name="A[10]">
<input type="text" name="B[10]">
4

2 に答える 2

1

これはおそらく、私が考えることができる最も簡単な方法です。動的 DOM を少し変更する必要がありますが、常に A と B を生成すると想定しているため、これは問題にはなりません。

HTML:

<span class="calc_group">
    <input type="text" name="A[1]">
    <input type="text" name="B[1]">
</span>
<span class="calc_group">
    <input type="text" name="A[2]">
    <input type="text" name="B[2]">
</span>

jQuery:

注: これは、追加するたびに動的 DOM 関数内で呼び出す必要があります。

function doAttachment(){
     $('.calc_group input').unbind('keyup');

     $('.calc_group input').keyup(function(){
           var sum = 0;
           $(this).parent().children().each(function(){
                sum += parseInt($(this).val());
           });

           alert(sum);
      });
}
于 2012-05-18T18:01:34.410 に答える
1

私はあなたがこのようなことをしようとしていると思います:

$('input[type=text]').on('keyup', function() {
    var cur = this.name;
    if(cur.indexOf('A') == 0){
       var target = 'B' + cur.replace('A','');
    } else target = 'A' + cur.replace('B','');
    var targetVal = $('input[name="'+ target +'"]').val();
    var sum = parseInt(this.value) + parseInt(targetVal ? targetVal: 0);
    console.log(sum);
});

ワーキングデモ

于 2012-05-18T17:41:42.293 に答える