获取数组文本字段并计算javascript

时间:2014-06-10 10:01:22

标签: javascript jquery

例如,我有这个代码(来自php脚本循环的结果): <input type="text" name="qtty[]" id="qtty[]" onFocus="startCalc();" onblur="stopCalc();"> <input type="hidden" name="price[]" id="price[]"> <input type="text" name="totalprice[]" id="totalprice[]">

这适用于javascript:

function startCalc(){
    interval = setInterval("calc()",500);
}

function calc(){
$('input[name="qtty[]"]').each(function(){
    qtty    = $(this).val();
});
$('input[name="price[]"]').each(function(){
    price   = $(this).val();
});
total   = (qtty * 1) * (price * 1);
$('input[name="totalprice[]"]').val(total);

}


function stopCalc(){
    clearInterval(interval);
}

当我输入数组的第一个输入时,程序没有显示任何内容。但在第二组数据输入时,TotalPrice将改变两者

这里,例如:

  1. http://s7.postimg.org/memsupuh7/Capture1.png
  2. http://s23.postimg.org/6rdfk2rzf/Capture.png

2 个答案:

答案 0 :(得分:1)

我认为你走错了路。这是更优选的变体:

<input type="text" name="qtty">
<input type="hidden" name="price" value="2">
<input type="text" name="totalprice">
<br>
<input type="text" name="qtty">
<input type="hidden" name="price" value="3">
<input type="text" name="totalprice">

$('input[name="qtty"]').keyup(function() {
  var qtty = $(this).val();
  var price = $(this).next().val(); 
  var total = (qtty * 1) * (price * 1);
  $(this).nextAll().eq(1).val(total); 
});

fiddle

答案 1 :(得分:0)

试试这个

最初分配默认值

    var qtty=0;
    var price =0;
    var interval ;
        function startCalc(){
            interval = setInterval(calc,500);
        }

        function calc(){
        $('input[name="qtty[]"]').each(function(){
            qtty    = $(this).val();
        });
        $('input[name="price[]"]').each(function(){
            price   = $(this).val();
        });
        total   = (qtty * 1) * (price * 1);
        $('input[name="totalprice[]"]').val(total);

        }


        function stopCalc(){
            clearInterval(interval);
        }