【问题标题】:Why isn't JavaScript getting the whole input box?为什么 JavaScript 没有获取整个输入框?
【发布时间】:2012-10-27 01:29:53
【问题描述】:

我有一些输入框(它们是动态生成的),它们应该在其中输入数字并添加这些数字,然后将其打印在页面上。

它可以工作,但是当你输入一个数字时,它没有得到最后一个数字(这意味着如果数字是 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);
    }
}

【问题讨论】:

  • 该代码看起来还不错。你能提供更多的背景信息吗?你怎么提交?即,你在哪里打电话给getLength()
  • 你能提供相关的HTML位吗?

标签: javascript input for-loop


【解决方案1】:

据我所知,您的代码是正确的并且运行良好。有关使用您提供的代码的示例,请参阅 this jsFiddle

确保您拥有:

  • 在您希望包含在总数中的文本框上正确定义了 name 属性
  • 不限制输出元素的样式(带有id="length" 的div)来截断文本

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-09
      • 1970-01-01
      • 2019-08-15
      • 1970-01-01
      • 2013-12-04
      • 2021-11-13
      相关资源
      最近更新 更多