1

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

<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

4 回答 4

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

$quantity.keyup(function(){
    var val = 0;
    $quantity.each(function(){
        val += parseInt($(this).val(), 10);
    });
});
于 2012-05-04T05:36:32.713 回答
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

于 2012-05-04T05:47:54.820 回答
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);
        });
    });

现场演示

于 2012-05-04T05:35:58.607 回答
0

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

var total_quantity = 0;  
$('.quantity').keyup(function()
{
    $(this).each(function()
    {
        total_quantity += $(this).val();
    });
}); 
于 2012-05-04T05:38:50.460 回答