繁体   English   中英

IE8点击事件问题

[英]IE8 click event issue

我有一个JQuery(1.8)Datatable(1.10),其中一些字段是就地可编辑的,即点击它们会创建一个输入元素,可以输入新数据来更新表格。

在IE8中(但不在Chrome或Firefox中,我没有以后的IE版本),在可编辑字段中按return似乎也会在表格外的按钮上生成“点击”事件。 这很不幸,因为此按钮打开一个Bootstrap模式对话框。

为什么这可能会发生,解决它的最佳方法是什么? AFAICT没有输入字段的单击处理程序(有一个keyup处理程序返回false以停止传播)。 目前我假设这是一个涉及IE8如何以不同方式处理事件的某种问题,但我不确定如何在此按钮上生成点击事件。

输入事件侦听器是:

_setupEventListeners: function (tableEditor) {
  // Listen for key presses to trigger any finalisation actions
  this.element.on('keyup', function (event) {
  switch (event.keyCode) {
    // return or enter keys
    case  KEYCODE_ENTER:
      tableEditor.saveAndClose();
      break;
     // esc key
     case  KEYCODE_ESCAPE:
       tableEditor.revertAndClose();
       break;
     }
     // may be overkill as JQ does stopPropagation if false returned??
     event.stopPropagation();
     (event.preventDefault) ? event.preventDefault() : event.returnValue = false;
     return false;
     });
  },

按钮事件处理程序是:

$(tableId + '-addRow').click(function (event) {
    console.log("AddRow click");
    // modal opened here....
});

http://tjvantoll.com/2013/05/22/why-are-enter-keypresses-clicking-my-buttons-in-ie/

特别

Internet Explorer有一个恼人的怪癖,从IE10开始仍然存在:在文本框中按Enter时可以点击提交按钮,即使没有。[...]没有其他浏览器表现出这种行为。

简短修复:使你的按钮type='button'而不是type='submit'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM