我正在使用脚本模板在用户点击按钮时创建代码块,这样可以正常工作,但我希望能够在这些克隆区域内计算总数,因此我有一个内联onBlur语句作为如下
onblur = "multiply.call(this, this.form.elements.Qty{{ID}}.value, this.form.elements.Cost{{ID}}.value, this.form.elements.Total{{ID}})"
由于克隆功能将ID更新为值,因此评估为
onblur = "multiply.call(this, this.form.elements.Qty1.value, this.form.elements.Cost1.value, this.form.elements.Total1)"
我的功能是
function multiply(one, two, three) {
console.dir(three);
document.getElementById(three).value = (parseFloat(one) + parseFloat(two)).toFixed(2); // error here
};
如果我显示一个和两个,他们有表格中的值,但是我写错了回写Uncaught TypeError: Cannot set property 'value' of null
的for。
控制台将元素3的ID显示为Total1
我认为这可能与jQuery克隆和DOM没有更新有关。值传递正常,但对象可能不是。
有什么想法吗?
答案 0 :(得分:1)
document.getElementById(three)
不返回任何匹配项(即undefined
)。
您已将某个元素作为参数multiply
传递给您的函数three
,并且您稍后将其用作表示其ID的字符串。
如果three
被验证为元素,请不要先调用document.getElementById(three).value
,而应直接three.value
。