2017-09-02 7 views
0

これは私のコードであり、2つの<textbox>と2つの<button>タグを使用しています。目標は、私は、それぞれのボタンをクリックした後<textbox>の値をインクリメントしたいということです。異なるidsのボタンクリック時のテキストボックスのインクリメント値

<!DOCTYPE html> 
<html> 
<head> 
    <title> My first increment </title> 
</head> 
<body> 

    <input type="text" name="TextBox" id="TextBox1" value="0" /> 
    <input type="Button" id='AddButton1' value="+" /> 

    <input type="text" name="TextBox" id="TextBox2" value="0" /> 
    <input type="Button" id='AddButton2' value="+" /> 


    <script src="http://code.jquery.com/jquery-1.4.3.min.js"></script> 
    <script> 
     $(document).ready(function(){ 
      var i = 1; 
      $('#AddButton'+i).click(function() { 
       var counter = $('#TextBox'+i).val(); 
       counter++ ; 
       $('#TextBox'+i).val(counter);    
      }); 
      i++; 
     }); 
    </script> 
</body> 

私の問題は、私はループ内で値をインクリメントすることはできませんよということです。

単一の<textbox>の場合、内部値はインクリメントされていますが、i++を使用すると、その動作は繰り返されません。

+0

は私が正しく理解すれば、私は見てみましょう。ボタン1をクリックして最初のテキストボックスで増分しますか? 2番目のボタンをクリックして、2番目のテキストボックスを作成しますか?なぜこのようなアプローチをとっているのですか? – Valkyrie

+0

はいこれのための他のアプローチ..初心者 – Peace

+1

私は答えを出しましたが、使用しているjQueryのバージョンがSUPERです。改善のためにアップグレードしてください。 –

答えて

3

事は、あなたが本当にIDを見つけるために何もしていないということです。あなたは何も増やせません。これは私がそれを行うだろうかです:

<!DOCTYPE html> 
<html> 
<head> 
    <title> My first increment </title> 
</head> 
<body> 
    <input type="text" name="TextBox" id="TextBox1" value="0" /> 
    <input type="Button" id='AddButton1' value="+" /> 
    <input type="text" name="TextBox" id="TextBox2" value="0" /> 
    <input type="Button" id='AddButton2' value="+" /> 

    <script src="http://code.jquery.com/jquery-1.4.3.min.js"></script> 
    <script> 
     $(document).ready(function(){ 

      $('#AddButton1, #AddButton2').click(function(){ 
       var id = $(this).attr('id').replace(/AddButton/, ''); 
       var num = parseInt($('#TextBox' + id).val()); 
       num++; 
       $('#TextBox' + id).val(num);    
      }); 
     }); 
    </script> 
</body> 
1

は、このコードを試してみてください。

$(document).ready(function(){ 
    $('[id^="AddButton"]').click(function() { 
     var counter = $(this).prev().val(); 
     counter++ ; 
     $(this).prev().val(counter);   
    }); 
}); 
関連する問題