【发布时间】: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