2012-09-25 128 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)