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

Bootstrap 5.1模态框中addEventListener点击事件弹窗显示即触发的问题求助

问题分析与解决方案

你遇到的问题根源在于HTML中存在重复的id属性——页面顶部的“Show Modal”按钮和模态框里的“Apply”按钮都用了btnLoadList这个id,这违反了HTML规范(id必须是文档内唯一的)。

为什么事件会在打开模态框时触发?

当你用document.getElementById('btnLoadList')获取元素时,浏览器只会返回第一个匹配该id的元素,也就是页面顶部的那个打开模态框的按钮。所以你实际上是给“Show Modal”按钮绑定了click事件,当你点击它打开模态框的时候,这个事件就被触发了,控制台自然会打印on click event,而模态框里的Apply按钮根本没有绑定到这个事件。

解决步骤:

  1. 修改Apply按钮的id,给它一个唯一的标识,比如btnApply:
<button type="button" class="btn btn-primary" id="btnApply">Apply</button>
  1. 更新JavaScript代码,获取新的id并绑定事件:
window.onload = function(){
    var btnApply = document.getElementById('btnApply');
    if(btnApply){
        btnApply.addEventListener('click', function(event){
            console.log("on click event");
            // 这里可以添加你需要的逻辑,比如处理表单数据
        });
    }
}

这样修改后,只有当你点击模态框里的“Apply”按钮时,才会触发对应的click事件,完全符合你的预期。

另外建议你在写HTML时始终保持id的唯一性,避免这类容易混淆的问题。

内容的提问来源于stack exchange,提问作者Hoa-NX

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 11:17:35