【问题标题】:error message saying onclick javascript function does not exist错误消息说 onclick javascript 函数不存在
【发布时间】:2020-10-16 08:28:22
【问题描述】:

我正在构建一个简单的 Web 应用程序,它包括在提交表单时更改其他变量。我已成功地将 onclick 功能附加到其他按钮,但由于某种原因,这个功能不起作用。我尝试了多种方法来编写程序(稍后会详细介绍),但似乎没有任何效果。

这里是 HTML

<form name="customChange" id="customChange">
  <label for="custom">
    Enter a number to change BPM :
    <input
      id="custom"
      type="number"
      placeholder="Enter positive or negative number"
      name="customChangeNumber"
    />
  </label>
</form>
<button id="customBtn" onclick="customChange()">Change</button>

这里是javascript

function customChange() {
  let change = document.getElementById("custom").value;

  calculateCustomBPM(change);

  let secPerBeat = 60 / BPM;
  heart.style.animationDuration = secPerBeat + "s";
  document.getElementById("BPM").innerHTML = BPM;
}

这是控制台显示的错误消息。 error message

error message: Uncaught TypeError: customChange is not a function
    at HTMLButtonElement.onclick 

我尝试添加事件侦听器、将按钮放置在表单中以及许多其他内容,但我无法找出问题所在。

此外,当按钮位于表单中时,我似乎无法阻止页面重新加载,因此也欢迎任何帮助。

【问题讨论】:

  • 您能否添加一些有关如何在页面上包含脚本的详细信息?说明问题的 CodePen 或 CodeSandbox 的链接将非常有帮助:)
  • 我觉得很奇怪,但它与表单的名称有关,如果更改脚本可以正常工作。
  • 不知道为什么您的函数名称没有被识别,但表单中按钮的默认行为是提交表单。提交表单的默认行为是将表单发送到当前 URL。您的点击处理程序需要有一个类似function customChange(event) 的参数,然后调用event.preventDefault() 来停止这种行为。
  • @Mario 是的,我更改了表单名称,并且成功了,谢谢您

标签: javascript html forms function button


【解决方案1】:

只需更改函数名称即可。这是导致问题的原因,因为表单名称也相同。

我已经尝试过您的问题,但我遇到了同样的错误,然后我更改了名称并且它正在工作。

要么更改函数名称,要么更新表单标签的名称字段。

【讨论】:

  • 是的,我很快就想通了,更改了表单名称,并且成功了。谢谢!
【解决方案2】:

这可能是为什么:

函数与预先存在的属性共享名称

有时在创建类时,您可能有同名的属性和函数。调用该函数时,编译器认为该函数不复存在。

取自https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Not_a_function

【讨论】:

  • 欢迎来到 Stack Overflow。如果您想提供帮助和贡献,那么我建议您访问help center。感谢您的帮助,但我们确实希望得到比仅引用文档更高质量的答案。
猜你喜欢
  • 1970-01-01
  • 2021-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-03
  • 2021-05-15
  • 1970-01-01
相关资源
最近更新 更多