javascript-IE8点击事件问题
作者:互联网
我有一个JQuery(1.8)Datatable(1.10),其中某些字段可以在原地编辑,即单击它们会创建一个输入元素,可以在其中输入新数据来更新表.
在IE8中(但在Chrome或Firefox中却没有,我没有更高版本的IE),在可编辑字段中按回车键似乎还会为表格外的按钮生成一个“单击”事件.不幸的是,此按钮将打开Bootstrap模态对话框.
为什么可能会发生这种情况?解决该问题的最佳方法是什么? AFAICT在输入字段中没有单击处理程序(有一个键入处理程序,该处理程序返回false以停止传播).目前,我假设这是涉及IE8如何处理事件的某种问题,但是我不确定它如何在此按钮上生成click事件.
输入事件侦听器为:
_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 has an annoying quirk that still exists as of IE10: submit buttons can be
clicked when Enter is pressed in a textbox, even when no is present.[…] No other
browsers exhibit this behavior.
简短修正:将您的按钮类型设置为“ button”,而不是type =“ submit”
标签:javascript,jquery,internet-explorer-8 来源: https://codeday.me/bug/20191029/1960126.html