2017-07-03 41 views
0

如何從文本框獲取值表,並使用javascript

<!DOCTYPE html> 
 
    
 
    <script> 
 
    function m(){ 
 
var tb=document.getElementById("w"); 
 
     var len=tb.rows.length; 
 
     var b=[]; 
 
     
 
     for(var i=1;i<len;i++) 
 
     {  
 
b[ i ] = parseInt(tb.rows[ i ].cells[ 4 ].querySelector('input').value) * parseInt(tb.rows[ i ].cells[ 5 ].querySelector('input').value); 
 

 
     
 
    document.getElementById("w").rows[i].cells[6].innerHTML=b[i]; 
 
     
 
     } 
 
     
 
    } 
 
     
 
    
 
    </script> 
 
    
 
    
 
</body> 
 
</html>

我是新來的JavaScript!我試過從表文本中獲得價值,並動態更新linetotal但我正在逐漸更新輸出爲NaN。 任何人都可以糾正錯誤!

回答

0

您正試圖訪問表格單元格上的.value。您需要訪問表格單元格內的input字段。

您需要使用.querySelector('input').value,而不是僅僅.value

b[ i ] = parseInt(tb.rows[ i ].cells[ 4 ].querySelector('input').value) * parseInt(tb.rows[ i ].cells[ 5 ].querySelector('input').value); 

我真的建議使用jQuery雖然。它會讓生活變得更輕鬆!香草JavaScript很難與工作和維護 - 即使是最好的開發人員。

+0

您可以編輯代碼,讓我正確的?所以,這將是很容易理解 – gkr

+0

這裏有一個快速修改現有的代碼https://codepen.io/jamespoel/pen/dReNXW – James

+0

另外,如果你如果計劃使用小數價格(例如3.50),則需要使用'parseFloat'而不是'parseInt';如果你使用'parseInt',它會收集價值 – James

0
function m(){ 
    var tb=document.getElementById("w"); 
    var len=tb.rows.length; 
    var b=[]; 
    for(var i=1;i<len;i++) { 
     var qty = tb.rows[i].cells[4].querySelector('input').value, 
      price = tb.rows[i].cells[5].querySelector('input').value; 
     console.log(qty); 
     if(qty != "" && price != "") { 
     b[i]=parseInt(qty)*parseInt(price); 
     } else { 
     b[i] = "None"; 
     } 
     tb.rows[i].cells[6].innerHTML=b[i]; 
    } 
    } 

您需要使用querySelector('input').value而不是.value。我添加了一個if語句,用於檢查兩個字段是否都爲空,如果是,結果將爲「Null」。你可以編輯任何你想要的「失敗字符串」。

相關問題