开发者问题收集

未捕获的类型错误:无法设置属性“value”为 null,JavaScript

2014-06-26
1433

使用此代码时,我总是收到此错误。 SRC --> http://jsfiddle.net/MYG2C/1/

JS

    <input class="menu1" type="submit" value="Total : 0.00" onclick="m.getTotal()" id="total" />

HTML

var m = {
    total:0,
    getTotal: function () {
        this.total = this.total.toFixed(2);
        document.getElementByID("total").value = "Total : " + this.total;
    },
}
m.total = 5;
//Clicking the button should now update the text on the button.
2个回答

两个问题...

  • getElementByID 应为 getElementById
  • this.total = this.total.toFixed(2); 第一次会起作用,因为 total 是一个数字。之后它变成一个字符串,而 toFixed 不是字符串上的有效方法

更新的 Fiddle

Anthony Chu
2014-06-26

正如 anthony chu 所说,您有一个拼写错误,下面是修改后的脚本,用于检查类型并避免 Uncaught TypeError。

var m = {
    total:8,
    getTotal: function () {
        if(typeof this.total == "number")
        {
        console.log("executed");
        this.total = this.total.toFixed(2);
        document.getElementById("total").value = "Total : " + this.total;
        }
    },
}

JSFIDDLE : http://jsfiddle.net/8J2G7/4/

Krish
2014-06-26