jquery val()只取第一行的值

时间:2015-08-24 05:52:50

标签: javascript jquery html

我有一个情况,我有一个表格,其中我有一些类似的行,当我提交表格时,我希望显示数量值,这是初始,它返回的初始值只有第一行,我知道它会这样做,但不确定解决方案

html代码:

    <form class="editcart" method="post" action="">  

       <input type="text" class="pid" name="pid" value="${product.pid}" hidden/>
           <input type="text" class="spid" name="spid" value="${product.sub_pid}" hidden/>
           <input type="text" class="cartid" name="cartid" value="${product.cart_id}" hidden/>
           <input type="text" class="quantity" name="quantity" value="20" readonly="readOnly"/>
           <input type="button" value="Edit" class="enable"/>
           <input type="submit" value="Save" class="save" hidden/>

       <input type="text" class="pid" name="pid" value="${product.pid}" hidden/>
           <input type="text" class="spid" name="spid" value="${product.sub_pid}" hidden/>
           <input type="text" class="cartid" name="cartid" value="${product.cart_id}" hidden/>
           <input type="text" class="quantity" name="quantity" value="5" readonly="readOnly"/>
           <input type="button" value="Edit" class="enable"/>
           <input type="submit" value="Save" class="save" hidden/>

       <input type="text" class="pid" name="pid" value="${product.pid}" hidden/>
           <input type="text" class="spid" name="spid" value="${product.sub_pid}" hidden/>
           <input type="text" class="cartid" name="cartid" value="${product.cart_id}" hidden/>
           <input type="text" class="quantity" name="quantity" value="4" readonly="readOnly"/>
           <input type="button" value="Edit" class="enable"/>
           <input type="submit" value="Save" class="save" hidden/>
    </form>  

和jquery代码是:

$(document).ready(function(){

   var init = $('.quantity',this).val();

  $('.enable').click(function(){         
    $(this).prev('.quantity').prop('readOnly',false); 
    $(this).hide();
    $(this).next('.save').fadeIn();
  });

     $('.editcart').submit(function() {

           var quant = $('.quantity',this).val();  
           var pid = $('.pid',this).val();
           var spid = $('.spid',this).val(); 
           var cartid = $('.cartid',this).val();

    alert("the init value is : "+init);
      return false;

         });

 });

fiddle

1 个答案:

答案 0 :(得分:2)

试试这个: -

 var init =0;
 $('.quantity',this).each(function(){
   init+=parseInt($(this).val());    
});

由于您希望点击行的值使用此代码: -

 $('.save').click(function(){
    init=$(this).prev().prev('.quantity').val();
 });

Demo

Demo 1