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

如何用JavaScript打开外部Bootstrap Modal?Bootstrap-Table初始化问题求助

解决Bootstrap-Table在$(document).ready()中无法正常初始化的问题

嘿,我之前也碰到过类似的坑,大概率是依赖加载顺序、DOM就绪时机或者代码语法问题导致的,给你几个实用的排查和解决方向:


1. 先确认依赖加载的顺序是否正确

Bootstrap-Table依赖jQuery和Bootstrap,必须保证加载顺序是:jQuery → Bootstrap → Bootstrap-Table,而且要把这些依赖放在你的初始化代码之前。另外别忘了加载法语语言包,不然locale: 'fr-CA'会失效:

<!-- 放在<head>或者</body>之前都可以,但必须在你的脚本前面 -->
<link rel="stylesheet" href="path/to/bootstrap.min.css">
<link rel="stylesheet" href="path/to/bootstrap-table.min.css">

<script src="path/to/jquery.min.js"></script>
<script src="path/to/bootstrap.min.js"></script>
<script src="path/to/bootstrap-table.min.js"></script>
<script src="path/to/bootstrap-table-fr-CA.min.js"></script> <!-- 法语语言包 -->

2. 换个时机触发初始化

有时候Razor页面的DOM元素可能因为服务器渲染延迟,导致$(document).ready()执行时#table还没生成。可以试试这两个方法:

  • 把你的脚本放在页面最底部(</body>标签的前一行),确保DOM完全加载后再执行
  • 用$(window).on('load', function(){...})代替$(document).ready(),这个会等所有资源(包括图片、异步内容)加载完再触发

3. 检查代码语法和完整性

你贴的代码里sortOr...没写完,大概率实际代码里有语法错误(比如缺逗号、括号不匹配)。给你补全一个完整的初始化示例,你可以对照检查:

$(document).ready(function () {
  $('#table').bootstrapTable({
    url: 'GetListeCatDdeurs',
    locale: 'fr-CA',
    pagination: true,
    paginationLoop: true,
    search: true,
    clickToSelect: true,
    singleSelect: true,
    sortable: true,
    sortOrder: 'asc', // 补全你没写完的sortOrder配置
    sidePagination: 'server', // 如果是服务器端分页,记得加这个
    columns: [
      { field: 'id', title: 'ID', sortable: true },
      { field: 'libelleCategorie', title: 'Catégorie' },
      // CRUD按钮列示例
      {
        field: 'actions',
        title: 'Actions',
        width: '150px',
        formatter: function(value, row) {
          return `
            <button class="btn btn-sm btn-primary" onclick="openEditModal(${JSON.stringify(row)})">Éditer</button>
            <button class="btn btn-sm btn-danger" onclick="openDeleteModal(${row.id})">Supprimer</button>
          `;
        }
      }
    ]
  });

  // 模态框触发逻辑示例
  window.openEditModal = function(row) {
    // 填充表单数据
    $('#editForm #id').val(row.id);
    $('#editForm #libelleCategorie').val(row.libelleCategorie);
    // 打开模态框
    $('#editModal').modal('show');
  }
});

4. 用浏览器控制台排查错误

按F12打开开发者工具,切换到Console面板,看看有没有报错:

  • 如果显示$ is not defined:说明jQuery没加载成功
  • 如果显示bootstrapTable is not a function:说明Bootstrap-Table的JS没加载对
  • 如果显示其他语法错误:根据提示定位代码里的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:07:40