如何从表中的文本框中获取值并使用javascript更新它

时间:2017-07-03 16:39:10

标签: javascript dom html-table

<!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的新手!我尝试从表格中的textbox获取值并动态更新linetotal,但我得到输出为NaN。 任何人都可以纠正错误!!

3 个答案:

答案 0 :(得分: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。它会让生活变得更轻松! Vanilla Javascript很难使用和维护 - 即使对于最好的开发人员也是如此。

答案 1 :(得分: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”。您可以将“失败字符串”编辑为您想要的任何内容。

答案 2 :(得分:0)

检查出来:https://jsfiddle.net/abhiphirke/joq3jLk5/3/

在字段中填写值,然后点击Click Me!按钮。如果你不这样做,你会得到NaN。 玩得开心!!