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

如果在按键事件期间调用 getLength 函数,则该函数可能在文本字段实际被赋予新字符之前执行。

于 2012-11-07T02:21:06.683 回答
0

据我所知,您的代码是正确的并且工作正常。有关使用您提供的代码的示例,请参阅此 jsFiddle 。

确保您拥有:

  • 正确定义了name您希望包含在总数中的文本框的属性
  • 不限制输出元素的样式(带有 的 div id="length")来截断文本
于 2012-11-07T02:09:25.327 回答