javascript - 在引导模式窗口之外选择下拉选择会导致模式关闭

标签 javascript html bootstrap-4 selectize.js

这是我用来选择任务的非常简单的模式窗口。

<div id="add_task_modal" class="modal fade" tabindex="-1" role="dialog">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title">Lookup Task</h5>
            </div>
            <div class="modal-body">
                <select id="select_customer_name" placeholder="Select a customer..."></select>
                <select id="select_project_name" placeholder="Select a project..."></select>
                <select id="select_task_name" placeholder="Select a task..."></select>
            </div>
            <div class="modal-footer">
                <button id="submit_add_task" class="btn btn-primary">Add</button>
                <button class="btn btn-primary" data-dismiss="modal">Cancel</button>
            </div>
        </div>
    </div>
</div>
有三个<select> s 里面是 selectized .如果需要,我可以发布此代码,但我认为它不相关。
基本上问题是在某些情况下下拉菜单超出了模态窗口的底部(这就是我想要的),如果您单击底部下方的选项,它将关闭模态窗口。显然我可以将模态设为静态,但这不是我想要的功能。
在这种情况下,有什么办法可以防止点击事件关闭模式?
编辑:这是我在点击一个这样的 <option> 时得到的两个点击事件。 :click { target: div#add_task_modal.modal.fade.show , buttons: 0, clientX: 1251, clientY: 370, layerX: 1251, layerY: 370 }click { target: div#add_task_modal.modal.fade, buttons: 0, clientX: 1251, clientY: 370, layerX: 1251, layerY: 370 }

最佳答案

这可能不是一个干净的解决方案。但是您可以在打开“选择”时将模式设置为静态,并在单击选择或失去焦点时将其更改回来。

$("#select_customer_name").on("focus", function(e) {
    modal.data('bs.modal')._config.backdrop = 'static';
});

$("#select_customer_name").on("blur", function(e) {
    modal.data('bs.modal')._config.backdrop = true;
});
注意:这适用于 Chrome,不适用于 Firefox。

关于javascript - 在引导模式窗口之外选择下拉选择会导致模式关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63471173/

相关文章:

javascript - 使用 Jquery 显示和隐藏函数

javascript - 我想每次都将不同的变量传递给循环中动态创建的按钮

JavaScript OR on if 语句

html - 屏幕不同侧的两个列表

javascript - bootstrap 4 我的 slider 无法正常工作

css - 如何使用带样式组件的默认 Bootstrap 类?

javascript - 单击按钮后 GridView 上的类属性不起作用

html - 防止滚动到填充区域

html - float :left; vs display:inline; vs display:inline-block; vs display:table-cell;

javascript - 有没有办法将两个 thead 都固定在页面顶部?