按钮 onclick 未定义不是函数

button onclick Undefined is not a function

感觉这应该是世界上最简单的事情了。我只想制作一个带有 onclick 调用的按钮并让它运行 javascript。然而,每次我这样做时,我都会收到 Uncaught TypeError: undefined is not a function 错误。

我已经阅读了这篇文章,但似乎不明白为什么它找不到该函数。

回顾一下:点击按钮应该运行 ThePush() 但我在控制台上收到错误消息。

代码:

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">

        function ThePush() {
          var name = document.getElementByID('name').value;
          var pl = document.getElementByID('PL1').value;
          var plw = document.getElementByID('theplw').value;
          var al = document.getElementByID('theal').value;
          //do stuff with these variables.
        }

</script>
</head>
<body>
<b>Player One: </b><input id="name" type="text" value="Name"></input>
<br/><b>Level: </b><input id="PL1" style="width:50px" type="text" id="PL1L" value="0" readonly></input>
<br/>
<button id="thesub" onclick="ThePush();">Submit</button>

<select id="theplw">
<option value="A: 0-999">A: 0-999</option>
<option value="B: 1,000-9,999">B: 1,000-9,999</option>
<option value="C: 10,000-99,999">C: 10,000-99,999</option>
<option value="D: 100,000-499,999">D: 100,000-499,999</option>
<option value="E: 500,000-1,499,999">E: 500,000-1,499,999</option>
<option value="F: 1,500,000+">F: 1,500,000+</option></select>
<br/><b>Sub Level: </b><input id="theal" style="width:50px" type="text" id="AL1L" value="0" readonly></input>
<hr>
<iframe src="others.php" frameborder="0" width="500"></iframe>
<iframe id="updater" src="update.php" frameborder="0" width="0" height="0"></iframe>

</body>
</html>

有什么想法吗?预先感谢您的帮助!

您的 onclick 没问题,但是 getElementByID 不是一个函数并且会抛出您的错误。您正在寻找 getElementById

    function ThePush() {
      var name = document.getElementById('name').value;
      var pl = document.getElementById('PL1').value;
      var plw = document.getElementById('theplw').value;
      var al = document.getElementById('theal').value;
      //do stuff with these variables.
    }

您应该将方法名称更改为 getElementById,而不是 getElementByID

我刚刚偶然发现了同样的错误。我真的无法解释为什么(还不想解释)但是当我从更新程序更改按钮 ID 时它开始工作。 id 和事件函数的同名可能导致错误