【问题标题】:Why can't I get the value of this text input field?为什么我无法获取此文本输入字段的值?
【发布时间】:2011-06-07 20:06:28
【问题描述】:

我有一个 div,其中包含一个文本输入字段:

<div id="age" class="fullScreen">
  <input type="text" id="age" class="textInput" placeholder="Please enter age..." />
  <button type="button" onclick="submitAge()">Submit</button>
</div>

submitAge() 看起来像这样:

function submitAge() {
  var ageVal = document.getElementById("age").text;
  alert(ageVal);
}

但在 Google Chrome 和 Webkit Nightly 中,我看到一个带有“未定义”文本的警报(我无法在任何其他浏览器中测试,因为该页面包含网络套接字)。

chrome 开发者工具显示:

我认为问题在于输入不在表单中,但我不希望它在表单中,因为我将通过 websockets 提交数据。

我必须把它放在一个表格中还是有更好的解决方案?

谢谢。

【问题讨论】:

  • 您有 2 个 ID = age 的 HTML 元素
  • 不打算发布另一个答案,因为在所有其他答案之间您有两个问题,但是#1您不能有多个具有相同 ID 的元素,行为未定义。 #2 你需要value 而不是text

标签: javascript html forms input


【解决方案1】:

您已重新定义了 ID“年龄”。重命名您的 div 或输入,您应该没问题。

【讨论】:

    【解决方案2】:

    试试:

    function submitAge() {
      var ageVal = document.getElementById("age").value;
      alert(ageVal);
    }
    

    【讨论】:

      【解决方案3】:
      var ageVal = document.getElementById('age').value;
      
      alert(ageVal)
      

      注意 .value 而不是文本

      【讨论】:

      • 还是不行……我已经试过了,又试了一次。
      • 嗯,我猜你现在已经注意到错误是具有相同 id 的双标签
      【解决方案4】:

      变化:

       var ageVal = document.getElementById("age").text;
      

       var ageVal = document.getElementById("age").value;
      

      【讨论】:

        【解决方案5】:

        &lt;div&gt; 的id 是年龄。这将返回 div 或 HTMLElements 数组。获取输入的唯一 id,您将是金子

        【讨论】:

          【解决方案6】:

          试试

          document.getDocumentById("age").value;
          

          【讨论】:

            猜你喜欢
            • 2022-01-16
            • 1970-01-01
            • 2018-11-09
            • 1970-01-01
            • 1970-01-01
            • 2013-12-08
            • 2020-09-09
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多