0

グリッド内で計算したい、2つのテキストボックス値の倍数、キープレスまたはキーアップイベント。このための JavaScript を提供してもらえますか。次のコードを使用していますが、うまくいきません

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

1 に答える 1

2

まず、2 つのものを掛け合わせる場合、それらは数値でなければなりません。

現時点では、変数ab変数は単に特定したHTML 要素であり、それらを掛け合わせることができません。(ただし、Carl のコメントに注意してください。txtlabchrgsNooflabこれが変数名ではなくリテラル文字列である場合は、引用する必要があるかもしれません。)

したがって、これらの要素の値を数値データ型として取得する必要があります。値の取得は、.value()テキスト入力を呼び出すのと同じくらい簡単でなければなりません。ただし、これは文字列を返します。これ、必要に応じて自動的に数値型に強制される可能性がありますが、私はそれを決定的に呼び出す方が幸せです (そして、より明確だと思います) parseFloat

フロートが 2 つあれば、楽しそうに増やすことができます。したがって、コードは次のようになります。

var elemA = document.getElementById(txtlabchrgsNooflab);
var elemB = document.getElementById(txtlabchrgsTotalCost);
var a = parseFloat(elemA.value());
var b = parseFloat(elemB.value());

txtlabchrgsTotalCost = a * b;

OK、上記のコードを使用すると、次のようになります。

エラー: プロパティ 'value' の値を取得できません: オブジェクトが null または未定義です

このエラー メッセージから何が推測できますか? valueランタイムが呼び出されていたものが null または未定義だったため、ランタイムが計算できなかったということです。

コードを見ると、どの変数が null または未定義であるかは明らかです。HTML を調べて、その理由を確認し、必要な修正を行うことができます。

于 2012-05-08T10:28:15.030 に答える