3

数字が入力されているはずの入力ボックス(動的に生成される)がいくつかあり、それらの数字を追加してページに印刷します。

動作しますが、数値を入力しても最後の桁は取得されません(つまり、数値が1〜9の場合、何も表示されません。その183の場合、JS関数は何らかの理由で18しか取得しません)

これはjs関数です。次のコードにエラーが含まれていると90%確信しています。

var lengthNum = document.createElement("strong");
function getLength() {
    var allNums = document.getElementsByName("numField");
    var length = 0;
    for (i=allNums.length-1;i>=0;i--) {
        length += parseInt(allNums[i].value);
    }
    if (length >= 0) {
        lengthNum.innerHTML = length;
        document.getElementById("length").appendChild(lengthNum);
    }
}
4

2 に答える 2

0

私が知る限り、あなたのコードは正しく、正常に動作しています。提供したコードを使用した例については、この jsFiddleを参照してください。

次のものがあることを確認してください。

  • name合計に含めたいテキストボックスの属性を適切に定義する
  • id="length"テキストを切り捨てるための出力要素 ( の div) のスタイルを制限しない
于 2012-11-07T02:09:25.327 に答える
0

keypress イベント中に getLength 関数が呼び出されている場合、テキストフィールドに実際に新しい文字が与えられる前に関数が実行されている可能性があります。

于 2012-11-07T02:21:06.683 に答える