我有这个动态填充的表单字段。
<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();
});
这只取取第一个元素的值并忽略其余的字段。我该怎么做我想要的?
谢谢
答案 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
答案 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();
});
});