0

问题是我在 Alertify 对话框上使用 Select2 组合框,现在每当我尝试通过按 Enter 键使用键盘选择 select2 选项时,对话框就会关闭,因为 Enter 键绑定到 Ok 按钮,而 ESC 键绑定到 Cancel 按钮,我想在不更改源 js 的情况下覆盖 keyupHandler 处理程序函数。

来源:https ://github.com/MohammadYounes/AlertifyJS/blob/master/build/alertify.js +1269

Alert.js 代码:

import alertify from 'alertify';

// How can I override the default keyupHandler function after importing it in my code?

我想添加验证,如果 event.target 是 Select2 并且它是打开的,那么不要触发关闭对话框的事件。

4

1 回答 1

0

您可以结合两个库中的事件来实现这一点,首先您侦听 select2 的打开和关闭事件,然后使用它们来允许或拒绝关闭对话框。

var isClosed = false
// wire select2 events
$('select').select2().on('select2:open', function(e){
  isClosed = false
}).on('select2:close', function(e){
  setTimeout(function(){
    isClosed = true
   },200)
});

// wire alertifyjs events
alertify.confirm().set('onok', function(){
  return isClosed
})
于 2019-07-21T09:30:11.830 回答