万水千山ABP - 弹出对话框禁用回车

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了万水千山ABP - 弹出对话框禁用回车相关的知识,希望对你有一定的参考价值。

模态对话框中禁用回车

 

ABP Zero 中,使用弹出对话框进行实体编辑,回车时会自动保存并关闭对话框。那么如何禁用这个回车功能 ?

 

查看实体列表视图 index.cshtml 所对应加载的脚本文件 index.js(如 Web\Areas\Mpa\Views\Editions\Index.js),有如下的定义

        var _createOrEditModal = new app.ModalManager({
            viewUrl: abp.appPath + ‘Mpa/Editions/CreateOrEditModal‘,
            scriptUrl: abp.appPath + ‘Areas/Mpa/Views/Editions/_CreateOrEditModal.js‘,
            modalClass: ‘CreateOrEditEditionModal‘
        });

这应该是定义生成或编辑模态对话框。

通过在源码中搜索 ModalManager ,找到  Web\Common\Scripts\ModalManager.js 文件中关于 app.ModalManager 的定义

app.ModalManager = (function () {
......
})();

app.ModalManager 扩展定义了Bootstrap 的模态框插件,其中有一段代码:

                _$modal.find(‘.modal-body‘).keydown(function (e) {
                    if (e.which == 13) {
                        e.preventDefault();
                        _saveModal();
                    }
                });

很明显,这段代码捕获模态体中的按键事件,当按键是回车时,阻止默认绑定动作,并保存。

把这一段注释掉,或者根据需要做修改吧。

 

有关 bootstrap 模态框禁用回车的文章,提到需要在 modal-footer 的所有 button 上都加上 type="button" 属性。我们看一下 ABP Zero 是如何定义的

Web\Areas\Mpa\Views\Common\Modals\_ModalFooterWithSaveAndCancel.cshtml

<div class="modal-footer">
    <button type="button" class="btn default close-button" data-dismiss="modal">@L("Cancel")</button>
    <button type="button" class="btn blue save-button"><i class="fa fa-save"></i> <span>@L("Save")</span></button>
</div>

一点没错,button 上已经加过这个属性了。

 

以上是关于万水千山ABP - 弹出对话框禁用回车的主要内容,如果未能解决你的问题,请参考以下文章

延迟弹出对话框片段,直到其中的 webview 完成加载

按下回车键,PrimeFaces禁用提交

如何在 ABP 框架中禁用事务?

js怎么禁用回车键,最好是按回车的时候,弹出提示“不能使用回车键”,刚开始学习,不胜感激

我该如何做模态对话框片段(代码在我关闭之前不会执行)

VBA Solver禁用每次迭代后弹出的对话框