0

我想在网格内计算,2个文本框值的倍数,按键或按键事件。你能为我提供一些javascript吗?我使用下面的代码它对我不起作用 javascript

var a = document.getElementById(txtlabchrgsNooflab);
    var b = document.getElementById(txtlabchrgsTotalCost);
    txtlabchrgsTotalCost=a*b;
4

1 回答 1

2

首先 - 如果你想将两个东西相乘,它们必须是数字。

目前,您的ab变量只是您识别的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 以了解原因,并进行必要的更正。

于 2012-05-08T10:28:15.030 回答