为什么浏览器会触发点击事件而不是表单提交
why browser trigger a click event instead of a submit in a form?
>我有这个代码http://jsfiddle.net/2Gay9/3/
.HTML
<form action="/" method="get" onsubmit="return false";>
test: <input type="text" value="">
<input type="submit" value="submit">
</form>
.JS
jQuery('input').bind("keydown click", function(event){
console.log(event.type);
console.log(jQuery(this));
});
尝试在输入文本中按 RETURN 并查看控制台:
keydown
jQuery(input)
click
jQuery(input submit)
问题:为什么浏览器在提交按钮上触发"点击"事件,而不是在表单中触发"提交"事件?这是项目缺陷还是规范?如何在不取消表单提交的情况下取消第二个活动?
啧
更新换句话说,我只需要将我的事件与浏览器事件区分开来。
使用:
jQuery('input').bind("keydown click", function(event){
event.preventDefault();
console.log(event.type);
console.log(jQuery(this));
});
解决了!
如果我无法停止提交按钮上的单击事件,我只能将浏览器与用户单击区分开来。为了区分browsers click
users click
我将使用鼠标按下事件而不是单击事件。
每次我们在输入文本中点击 RETURN 时,浏览器触发器都会单击当前表单中的第一个提交按钮。但这不会触发鼠标关闭事件,在这种情况下是"人类独有的"。
固定版本,即打印事件一次。
jQuery('input').bind("keydown mousedown", function(event){
console.log(event.type);
console.log(jQuery(this));
});
http://jsfiddle.net/2Gay9/6/
相关文章:
- 如何在表单提交事件后运行JavaScript*
- 在表单提交按钮的点击事件中调用函数时发生引用错误
- 动态添加/复制表单时绑定到表单提交事件
- 显示带有表单提交的单击事件的 toastR
- 如何在表单提交时在谷歌分析上设置事件跟踪
- 如何检查表单提交时鼠标滚动点击完成的点击事件
- 表单提交onChange事件;不能使用JQuery函数
- Jquery:如何处理"停止/取消”;用户停止表单提交时的事件
- 如何在表单提交时检查firebase推送事件是否成功
- 表单提交事件中this.submit()的行为
- 为什么浏览器会触发点击事件而不是表单提交
- onsubmit 事件不适用于异步表单提交
- 如何重置表单提交事件的 event.preventDefault()
- 收听在同一页面上使用两个表单提交事件
- 有没有我可以听的事件发生在表单提交之后,并且在表单通过HTML5验证之后
- 在表单提交时触发谷歌分析事件
- 文件上传器表单提交事件调用面板以显示包含文件更新程序我想删除代码重写在 jquery 中使用循环重写所有文件类型
- 如何在实际提交之前使用标准提交事件和jquery删除/增强/更改表单提交数据
- JSF 命令链接和表单提交 Google Analytics 事件跟踪
- 捕获 jQuery 表单提交事件