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

jQuery QueryBuilder搭配Bootstrap5内置提示框插件显示异常求助

解决jQuery-QueryBuilder v3搭配Bootstrap5时bt-tooltip-errors插件显示[Object.object]的问题

问题根源是bt-tooltip-errors插件未正确解析错误对象,直接将对象传递给Bootstrap5 tooltip,导致显示[Object.object]。以下是无需使用开发构建版本的解决方法:

方法一:覆盖插件的错误处理逻辑

在页面加载完成后,重写插件的showError方法,手动提取错误文本:

// 覆盖bt-tooltip-errors插件的错误处理逻辑
if (QueryBuilder.plugins['bt-tooltip-errors']) {
  const originalShowError = QueryBuilder.plugins['bt-tooltip-errors'].showError;
  QueryBuilder.plugins['bt-tooltip-errors'].showError = function(node, error) {
    // 从错误对象中提取文本,兼容不同格式的错误信息
    const errorText = typeof error === 'object' 
      ? (error.msg || error.message || '未知错误') 
      : error;
    // 调用原方法传入处理后的文本
    originalShowError.call(this, node, errorText);
  };
}

方法二:手动监听错误事件实现Bootstrap提示框

绕过插件的内置逻辑,直接通过QueryBuilder的事件手动控制Bootstrap tooltip:

// 监听错误触发事件,显示自定义Bootstrap tooltip
$('#query-builder').on('queryBuilder.error', function(e, node, error) {
  const errorText = typeof error === 'object' 
    ? (error.msg || error.message || '未选择筛选器') 
    : error;
  
  // 先销毁已存在的tooltip避免冲突
  $(node).tooltip('dispose');
  
  // 初始化并显示Bootstrap tooltip
  $(node).tooltip({
    title: errorText,
    placement: 'top',
    delay: { show: 100 },
    trigger: 'manual'
  }).tooltip('show');
});

// 监听错误清除事件,销毁tooltip
$('#query-builder').on('queryBuilder.errorCleared', function(e, node) {
  $(node).tooltip('dispose');
});

两种方法都能实现Bootstrap样式的错误提示,且无需替换现有CDN加载的正式版本代码,核心逻辑是将错误对象中的文本属性(msg或message)提取出来作为提示内容,和PR1008的修复思路一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 22:33:18