我有这个代码 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)
问题:为什么浏览器会在提交按钮上触发“点击”事件,而不是在表单中触发“提交”事件?这是项目缺陷还是规范?如何取消第二次活动而不提交取消表格?
韩国社交协会
更新 换句话说,我只需要将我的事件与浏览器事件区分开来。
答案 0 :(得分:0)
使用:
jQuery('input').bind("keydown click", function(event){
event.preventDefault();
console.log(event.type);
console.log(jQuery(this));
});
答案 1 :(得分:0)
<强>解决!强>
如果我无法停止提交按钮上的点击事件,我只能在用户点击之间解决浏览器差异问题。要将browsers click
与users click
分开,我将使用 mousedown 事件而不是点击事件。
每当我们在输入文本中点击RETURN时,浏览器触发器会点击当前表单中的第一个提交按钮。但是这并不会引发mousedown事件,在这种情况下“仅供人类使用”。
固定版本,可以打印一次事件。
jQuery('input').bind("keydown mousedown", function(event){
console.log(event.type);
console.log(jQuery(this));
});