首页 > 解决方案 > 将 enter keydown 视为跨多个模式按下“下一步”按钮

问题描述

我有四个模式,每个模式都是填写和提交表单的一个步骤。每个模态都有一个“下一步”按钮,用于关闭当前打开的模态并打开进程中的下一个。我试图让回车键充当按下“下一步”按钮,以及最后一步/模式上的“提交”按钮。

这是我当前的单个模态代码(所有模态看起来都一样)

$("#user-lookup-modal").on('shown.bs.modal', function () {
    $('#add_assistant_submit').prop('disabled', true);
    $(document).keypress(function (e) {
        if (e.keycode == 13 || e.which == 13) {
            $('#add_assistant_next').trigger("click");
            return true;
        }
    }) ;
});

但是,这会导致奇怪的行为,其中在一个模式中按 enter 也被视为在所有先前的模式中按 enter。我用控制台输出测试了它。

编辑:我试过这个,这似乎工作但它是一个糟糕的解决方案,因为它会一直监听按键?

$(document).keypress(function (e) {
            if ( e.keycode == 13 || e.which == 13) {
                if ($("#myModal").data('bs.modal') || {isShown: false}).isShown) {
                   //trigger button
                }
//... repeat for other modals

            }

        });
return false;

标签: javascriptjqueryhtmlbootstrap-modal

解决方案


推荐阅读