javascript - 按 "enter"键时的 IE7 不会阻止默认操作

标签 javascript jquery jquery-events

我有一个表格,其中包含:

<button class="submit">Submit</button>

和 jQuery 代码:

$(".submit").click(function(e){
   var evt = e || window.event; // IE compatibility
   if(evt.preventDefault){  
     evt.preventDefault();  
   }else{  
      evt.returnValue = false;  
    evt.cancelBubble=true;  
  }
 //....ajax call 
});

所以,我想知道我在 IE7 中做错了什么,当我键入搜索词并按回车键时,它会转到我的主页(form ="/" 中的操作)。为什么它不能阻止 IE7 进入默认操作。

  • 是不是因为我用的是按钮标签
  • 我也尝试过在 onsubmit 表单中调用一些函数但它失败了
  • 还是因为ajax调用?

补充说明:

  • 我有正文,在正文中我有 iframe,在 iframe 中我有表单。所以,我想知道是不是因为 iframe。

最佳答案

你正在阻止按钮标签的默认操作,这不会影响输入触发的事件,还要注意 jQuery 事件对象 preventDefault() 方法是跨浏览器的,试试这个:

$('input').on('keyup', function(e){
  if (e.which == 13) {
     e.preventDefault();
  }
})

关于javascript - 按 "enter"键时的 IE7 不会阻止默认操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11480497/

相关文章:

javascript - 如何确保特定的单击事件处理程序在所有其他附加的单击处理程序之后执行?

javascript - 为什么没有绘制可视化 map ?

javascript - 如果输入不为空 jQuery,则启用按钮

Javascript 事件 - 如何创建和存储只能由一个元素访问的变量?

javascript - 使用 dispatchEvent 触发所有浏览器事件

javascript - 从静止位置切换到固定位置时闪烁

javascript - 为什么是 {} < function(){}?

jquery - 如何将变量传递给单击事件处理程序?

javascript - 如何在屏幕顶部显示工具提示

jquery - Mobile Safari 和 jQuery 事件,什么都没有触发?