You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bootstrap4下x-editable文本类型popup模式无法编辑的解决方法

Bootstrap4下X-editable Popup模式文本无法编辑的解决办法

问题描述

使用Bootstrap4的x-editable组件时,设置类型为text且mode:'popup'时,弹窗能正常打开但无法修改原有文本;切换为inline模式则功能完全正常。日期选择、列表选择的popup模式均可正常工作。

初始化代码如下:

<a href="#" id="editDescrDoc" data-title="Description" data-type="text" data-pk="1">@description</a>

<script>
$('#editDescrDoc').editable({
    mode : 'popup',
    pk : 1,
    title : 'Specify description',
    emptytext: 'empty',
});
</script>

解决方法

1. 更换为适配Bootstrap4的X-editable版本

原版X-editable官方维护停留在Bootstrap3阶段,直接用于Bootstrap4会存在兼容性问题,需使用社区维护的Bootstrap4适配分支版本。

2. 修复输入框焦点与层级问题

Bootstrap4的modal弹窗样式可能导致X-editable的输入框无法获取焦点,或被弹窗遮罩层覆盖,可通过以下两种方式解决:

  • CSS调整层级:
.editable-popup .form-control {
    z-index: 9999;
    position: relative;
}
  • 手动触发焦点:在editable的shown事件中强制让输入框获取焦点
$('#editDescrDoc').editable({
    mode : 'popup',
    pk : 1,
    title : 'Specify description',
    emptytext: 'empty',
    shown: function() {
        $(this).find('input[type="text"]').focus();
    }
});

3. 自定义Text类型的Popup模板

若默认模板存在结构问题,可自定义模板确保输入框可编辑:

// 重定义弹窗按钮样式适配Bootstrap4
$.fn.editableform.buttons = 
    '<button type="submit" class="btn btn-primary editable-submit">'+
        '<i class="fa fa-check"></i>'+
    '</button>'+
    '<button type="button" class="btn btn-secondary editable-cancel">'+
        '<i class="fa fa-times"></i>'+
    '</button>';

// 自定义text类型输入框模板
$.fn.editabletypes.text.defaults.tpl = '<input type="text" class="form-control" autocomplete="off">';

4. 排查jQuery版本冲突

确保使用的jQuery版本与Bootstrap4、X-editable兼容,Bootstrap4推荐使用jQuery 3.1.1及以上版本,避免版本过低或过高导致事件绑定异常。

内容的提问来源于stack exchange,提问作者DeAmouSE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 19:22:48