2014-06-10 38 views
2

forexample,我有這樣的代碼(從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

而本作的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會改變兩個

在此,實施例PICT:

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

'id'應該是唯一的。 ? – hsz

+0

是什麼。每次的需要(在你的代碼是不添加這些值了.. –

+0

那麼,ID應該是唯一的 – ANDY

回答

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

+0

但爲什麼如果我使用表,地方,文本框沒有工作 HTTP?: //jsfiddle.net/andy_yatma_s/xq2Cu/6/ – ANDY

+0

這是因爲這個表達式:'$(this).nextAll()。eq(1).val(total);' 它是指:在此之後的第二個元素或者乾脆totalprise輸入,但是你把它放在其他'',所以它不是作品。 – raskalbass

+0

所以我應該怎麼辦?請幫助... – ANDY

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); 
     }