在网格内计算

时间:2012-05-08 09:53:32

标签: javascript asp.net

我想在网格内部计算2个textBox值的多个,按键或键盘事件。 你能为我提供一些javascript吗?我使用以下代码对我不起作用 的JavaScript

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

1 个答案:

答案 0 :(得分: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”的值:object为null或undefined

我们可以从此错误消息中推断出什么?好吧,运行时无法计算value,因为它被调用的东西是null或未定义。

如果查看代码,可以清楚地知道哪些变量可能为null或未定义 - 您应该能够检查HTML以查看原因,并进行必要的更正。