首页 文章

如何防止jQuery UI自动完成ESCAPE关闭Bootstrap模式?

提问于
浏览
0

我有一个Twitter Bootstrap模式,其中包含一个带有jQuery UI Autocomplete的字段 . 当显示自动完成建议菜单时,用户可以按键盘上的ESCAPE关闭它 . 但是,这也会关闭Bootstrap模式,因为它还会侦听按下的ESCAPE键 .

有没有办法阻止模态被关闭,只要自动完成建议菜单被/只是被ESCAPE键关闭?

注意:我不希望完全禁用模态上的转义键行为 - 仅当自动完成菜单打开并通过ESC关闭时 .

2 回答

  • 0

    您只需要通过JavaScript(Jquery)使用Bootstrap模态属性,这样:

    假设你的模态名称是#MyModal,使用它来防止用键盘关闭

    $('#myModal').modal({keyboard:false});
    

    看一个实例我在Bootply的下一个例子中创建了一个例子!

    问候和快乐的编码

  • 2

    尝试这样的事情 . 让我们 grab 转义键事件和模态隐藏事件:

    var isEscapeKey = false;
    
    $('#myAutoCompleteTextBox').on('keydown',function(e){
        if (e.keyCode == 27){
            isEscapeKey = true;
        } else{
            isEscapeKey = false;
        }
    }).on('blur',function(){
        isEscapeKey = false;
    });
    
    $('#myModal').on('hide.bs.modal', function (e) {
        if (isEscapeKey){
            return false;
        }
    });
    

    未经测试,但理论上应该在隐藏模态之前调用 hide.bs.modal 事件,并且可以在此处停止 .

相关问题