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

已加载DOM及bootstrap-modal.js,调用modal()仍报TypeError错误求助

解决Bootstrap modal()函数报错:Uncaught TypeError: $(...).modal is not a function

我来帮你排查这个问题,虽然你已经确认Bootstrap JS在自定义JS之前加载,但还有几个常见的坑会导致这个错误,结合你需要在弹窗显示前填充数据的需求,给你几个针对性的解决方案:

1. 先修正一个容易忽略的细节:选择器ID不匹配

看你的模态框代码,输入框的ID是save-value,但你的自定义JS里写的是$('#sale-value').val(...)——这两个ID完全不一致!虽然这不是modal()报错的直接原因,但会导致你填充数据的逻辑直接失效,先把这个修正:

// 把原来的$('#sale-value')改成$('#save-value')
$('#save-value').val($(this).data("value"));

2. 排查jQuery冲突问题

有时候页面中可能存在多个jQuery版本,或者其他JS库占用了$标识符,导致$没有指向正确的jQuery实例(而Bootstrap的modal方法是挂载在jQuery原型上的)。你可以试试这两种方法:

方法A:用jQuery代替$

直接使用完整的jQuery标识符,避免和其他库的$冲突:

jQuery(document).ready(function() {
  jQuery('.start-selling').click(function(event){
    jQuery('#save-value').val(jQuery(this).data("value"));
    jQuery('#mark_sold_modal').modal();
  });
});

方法B:用自执行函数锁定$指向jQuery

通过自执行函数把jQuery传入,确保函数内部的$只指向jQuery:

(function($) {
  $(document).ready(function() {
    $('.start-selling').click(function(event){
      $('#save-value').val($(this).data("value"));
      $('#mark_sold_modal').modal();
    });
  });
})(jQuery);

你也可以在浏览器控制台输入console.log(jQuery.fn.modal)来验证:如果输出是function,说明Bootstrap的modal组件已经正确挂载到jQuery上;如果是undefined,那还是Bootstrap JS的加载有问题。

3. 确认Bootstrap JS的完整性与版本兼容性

  • 确保你引入的是完整的Bootstrap JavaScript文件(不是只引入了CSS),有些自定义打包的Bootstrap可能会遗漏modal组件。
  • 检查jQuery和Bootstrap的版本兼容性:
    • Bootstrap 3 需要 jQuery 1.9.1 或更高版本
    • Bootstrap 4 需要 jQuery 3.3.1 或更高版本
    • 如果是Bootstrap 5,它已经不再依赖jQuery,所以你不能用$(...).modal()这种写法(但你的data-API能工作,说明应该是Bootstrap 3/4)

4. 处理动态生成的元素(如果适用)

如果你的.start-selling按钮是通过AJAX或其他方式动态生成的,那么直接用$('.start-selling').click()绑定的事件会失效,这时候需要用事件委托:

jQuery(document).ready(function($) {
  // 把事件绑定到document上,委托给.start-selling元素
  $(document).on('click', '.start-selling', function(event){
    $('#save-value').val($(this).data("value"));
    $('#mark_sold_modal').modal();
  });
});

最后验证步骤

  1. 强制刷新页面(Ctrl+F5)清除缓存,确保所有JS文件都重新加载
  2. 打开浏览器控制台,查看是否还有其他报错(比如404错误,说明JS文件路径不正确)
  3. 测试点击按钮,看弹窗是否正常弹出且数据正确填充

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:55:40