2012-09-25 127 views
0

我有一個很多input = text的表單,而且我有兩個圖像( - ,+),我想增加或減少以前的輸入文本。我不想在輸入文本中輸入一個id,因爲我可以在輸入文本和減號或加號之間有很多這一行。 用我的代碼減號按鈕的作品,但加號按鈕不是爲什麼?選擇上一個輸入jQuery

我的jQuery代碼

$('.minus').click(function(){ 
     var intRegex = /^\d+$/; 
     var floatRegex = /^((\d+(\.\d *)?)|((\d*\.)?\d+))$/; 

     var num = $(this).prev('input').val(); 
     if(intRegex.test(num) || floatRegex.test(num)) { 
      if (num>0){ 
       $(this).prev('input').val(num-1); 
      } 
     } 
     else{ 
      //non è un numero 
     } 

    }); 

    $('.plus').click(function(){ 
     var intRegex = /^\d+$/; 
     var floatRegex = /^((\d+(\.\d *)?)|((\d*\.)?\d+))$/; 

     var num = $(this).prev.prev('input').val(); 
     if(intRegex.test(num) || floatRegex.test(num)) { 
       $(this).prev.prev('input').val(num+1); 
     } 
     else{ 
      //non è un numero 
     } 

    }); 

HTML:

<input type="text" name="qta" id="qta" style="width:50px;"/> 
          <img src="img/shop/meno.jpg" alt="" class="minus" style="cursor:pointer"/> 
          <img src="img/shop/piu.png" alt="" class="plus" style="cursor:pointer"/> 
+0

首先,它不起作用,因爲**元素的ID應該是唯一**。如果您有多個輸入元素和正/負圖像,則應考慮使用類。 – VisioN

+0

用class而不是id編輯 –

回答

2
var num = $(this).prev().prev('input').val(); 

$(this).prev().prev('input').val(num+1); 

你錯過了兩次()

反正我想包每個輸入和圖像在自己的包裝,我會找到$(this).parent().find('input')

+1

感謝這項工作!大 –

1

使用輸入此去以前

var num = $(this).prev().prev('input').val(); 
如果你想要去的下次使用

var num = $(this).next().next('input').val(); 
0

如果你只有一個輸入,您可以使用輸入的ID

$('#qta').val(num+1) 

$('#qta').val(num-1)