网格内的计算

calculation inside the grid

本文关键字:计算 网格      更新时间:2023-09-26

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

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

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

目前,您的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 或未定义的。

如果您查看代码,就会很清楚哪些变量可能是 null 或未定义的 - 您应该能够检查您的 HTML 以了解为什么会这样,并进行所需的更正。