javascript - 为什么在文本框中按 Enter 键会单击第一个按钮并提交表单

标签 javascript html forms

打开 JavaScript 控制台,将光标放在文本框中,然后按 Enter 键。为什么调用函数“baz”?应该如何抑制?

function foo() {
  console.log('foo');
}
function bar() {
  console.log('bar');
}
function baz() {
  console.log('baz');
}
function blee() {
  console.log('blee');
}
<form onsubmit="foo()" action="javascript:blee()">
	<input type="text" />
	<button onclick="baz()">baz</button>
	<button onclick="bar()">bar</button>
	<input type="submit" />
</form>

最佳答案

浏览器认为输入后的按钮是提交按钮。如果您要将 baz 按钮与 bar 按钮切换,它将调用 bar() 函数。

您可以通过向两个按钮添加“type="button””来解决此问题。

关于javascript - 为什么在文本框中按 Enter 键会单击第一个按钮并提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29190396/

相关文章:

javascript - 使用 json 初始化 KnockOut 模型

javascript - 清除容器所有输入元素的值

javascript - 单击按钮更改背景颜色

javascript - 将数组发送到 frescojs pro show api

iOS多步表单

javascript - 在 Javascript 中调整 Canvas 背景

javascript - Controller 、指令和服务之间的 Angularjs 数据绑定(bind)

javascript - 如何通过 jQuery 选择文本并使用正则表达式替换它?

php - HTML 表单中的西类牙字符在 MySQL 数据库中显示错误

javascript 函数未被调用/无法从 html 表单工作