我想在网格内计算,2个文本框值的倍数,按键或按键事件。你能为我提供一些javascript吗?我使用下面的代码它对我不起作用 javascript
var a = document.getElementById(txtlabchrgsNooflab);
var b = document.getElementById(txtlabchrgsTotalCost);
txtlabchrgsTotalCost=a*b;
我想在网格内计算,2个文本框值的倍数,按键或按键事件。你能为我提供一些javascript吗?我使用下面的代码它对我不起作用 javascript
var a = document.getElementById(txtlabchrgsNooflab);
var b = document.getElementById(txtlabchrgsTotalCost);
txtlabchrgsTotalCost=a*b;
首先 - 如果你想将两个东西相乘,它们必须是数字。
目前,您的a
和b
变量只是您识别的HTML 元素,您不能将它们相乘。(尽管注意 Carl 的评论;txtlabchrgsNooflab
如果这是一个文字字符串而不是变量名,您可能需要引用。)
所以你需要获取这些元素的值,作为数值数据类型。获取值应该像调用.value()
文本输入一样简单;但是,这会返回一个字符串。这可能会根据需要自动强制转换为数字类型,但我会更乐意(并且认为它更清楚)明确地调用parseFloat
它。
一旦你有你的两个花车,你可以愉快地将它们相乘。因此,您的代码应如下所示:
var elemA = document.getElementById(txtlabchrgsNooflab);
var elemB = document.getElementById(txtlabchrgsTotalCost);
var a = parseFloat(elemA.value());
var b = parseFloat(elemB.value());
txtlabchrgsTotalCost = a * b;
好的,所以使用上面的代码会导致:
错误:无法获取属性“值”的值:对象为空或未定义
我们可以从这个错误信息中推断出什么?好吧,运行时无法计算value
,因为它被调用的东西是空的或未定义的。
如果您查看代码,就会清楚哪些变量可能为 null 或未定义 - 您应该能够检查您的 HTML 以了解原因,并进行必要的更正。