在jQuery中获取数组中的表单值

时间:2012-05-04 05:34:26

标签: jquery

我有这个动态填充的表单字段。

<input type="text" name="quantity[]" placeholder="quantity"/>
<input type="text" name="quantity[]" placeholder="quantity"/>
<input type="text" name="quantity[]" placeholder="quantity"/>
<input type="text" name="quantity[]" placeholder="quantity"/>
<input type="text" name="quantity[]" placeholder="quantity"/>

在jQuery的keyup上我想从input[name="quantity[]"]获取所有值并执行一些计算,如总量,如

(field1 quantity value) + (field2 quantity value) + (field3 quantity value) ... n

我试着像这样获取值。

$('input[name="quantity[]"]').keyup(function(){
    var val = $(this).val();
});

这只取取第一个元素的值并忽略其余的字段。我该怎么做我想要的?

谢谢

4 个答案:

答案 0 :(得分:2)

var $quantity = $('input[name="quantity[]"]');

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

答案 1 :(得分:2)

试试这个:

 <input type="text" name="quantity[]" placeholder="quantity"/>
<input type="text" name="quantity[]" placeholder="quantity"/>
<input type="text" name="quantity[]" placeholder="quantity"/>
<input type="text" name="quantity[]" placeholder="quantity"/>
<input type="text" name="quantity[]" placeholder="quantity"/>

<input type="text" name="res" placeholder="Resultado"/>



$(document).ready(function() {


$('input[name="quantity[]"]').keyup(function(){
   var val = 0;
   $('input[name="quantity[]"]').each(function() {
                val += Number($(this).val());
            });
    $('input[name="res"]').val(val);
});

});

fuente con jsfiddle

http://jsfiddle.net/kSw4G/3/

由JNE

答案 2 :(得分:1)

var ref = $('input[name^="quantity"]');
    ref.keyup(function(e){
        var result = 0;
        ref.each(function() {
          console.log($(this).val());
          if($(this).val().length && $(this).val() != '') {
            result += parseInt($(this).val());
          }
          console.log(result);
        });
    });

<强> Live Demo

答案 3 :(得分:0)

一个简单的解决方案是为每个文本框分配一个允许数量的类,然后

var total_quantity = 0;  
$('.quantity').keyup(function()
{
    $(this).each(function()
    {
        total_quantity += $(this).val();
    });
});