我有一张表格。在表单的外面,我有一个按钮。一个简单的按钮,像这样:
<button>My Button</button>
然而,当我单击它时,它提交了表单。代码如下:
<form id="myform">
<label>Label
<input />
</label>
</form>
<button>My Button</button>
所有这个按钮应该做的是一些JavaScript。但即使看起来像上面的代码,它也会提交表单。当我将标签按钮更改为span时,它工作得很好。但不幸的是,它必须是一个按钮。是否有任何方法阻止该按钮提交表单?例如:
<button onclick="document.getElementById('myform').doNotSubmit();">My Button</button>
还有一种方法可以防止在单击按钮时进行提交。
要实现这一点,必须使用event.preventDefault()方法。
document.querySelector("button#myButton").addEventListener("click", (event) => {
document.getElementById("output-box").innerHTML += "Sorry! <code>preventDefault()</code> won't let you submit this!<br>";
event.preventDefault();
}, false);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="src/style.css">
</head>
<body>
<form id="myform">
<label>Label
<input />
</label>
<button id="myButton">My Button</button>
</form>
<div id="output-box"></div>
<script src="src/script.js"></script>
</body>
</html>
还有一种方法可以防止在单击按钮时进行提交。
要实现这一点,必须使用event.preventDefault()方法。
document.querySelector("button#myButton").addEventListener("click", (event) => {
document.getElementById("output-box").innerHTML += "Sorry! <code>preventDefault()</code> won't let you submit this!<br>";
event.preventDefault();
}, false);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="src/style.css">
</head>
<body>
<form id="myform">
<label>Label
<input />
</label>
<button id="myButton">My Button</button>
</form>
<div id="output-box"></div>
<script src="src/script.js"></script>
</body>
</html>