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

点击表格无响应,求助实现Delete按钮确认弹窗功能

解决表格点击无响应及Delete按钮确认提示框问题

我来帮你一步步搞定这两个问题:

一、修复表格点击无响应的问题

你的代码大概率是因为DOM还没完全加载完成,JS就已经执行了,导致找不到#produits这个表格元素,事件监听自然没绑定成功。有两种简单的修复方式:

方式1:让JS在DOM加载完成后再执行

修改你的main.js,把代码包裹在DOMContentLoaded事件里:

// main.js
document.addEventListener('DOMContentLoaded', function() {
  var produits = document.getElementById('produits');
  if (produits) {
    produits.addEventListener('click', e => {
      // 后续逻辑写在这里
      alert(2);
    });
  }
});

方式2:调整script标签的位置

把引入main.js的<script>标签放到HTML的</body>标签之前,这样浏览器会先渲染完所有DOM元素,再加载执行JS代码,自然能找到表格元素。


二、实现Delete按钮的确认提示框

你的Delete按钮是<a>标签,默认会直接跳转页面,所以需要先阻止这个默认行为,弹出确认框,用户确认后再执行删除操作。修改main.js代码如下:

document.addEventListener('DOMContentLoaded', function() {
  var produits = document.getElementById('produits');
  if (produits) {
    produits.addEventListener('click', e => {
      // 用closest()查找点击元素的最近匹配按钮,避免按钮内部有子元素时target不匹配的问题
      const deleteBtn = e.target.closest('.btn.btn-danger');
      if (deleteBtn) {
        // 阻止a标签的默认跳转行为
        e.preventDefault();
        // 弹出确认提示框
        if (confirm('Are you sure you want to delete this item?')) {
          // 方案1:用户确认后,执行原跳转逻辑
          window.location.href = deleteBtn.getAttribute('href');
          
          // 方案2:推荐用fetch发送无刷新删除请求(需要后端配合处理DELETE方法)
          // const id = deleteBtn.getAttribute('data-id');
          // fetch(`/Supprimer/${id}`, {
          //   method: 'DELETE'
          // })
          // .then(res => {
          //   if (res.ok) {
          //     // 删除成功后直接移除当前行,无需刷新页面
          //     deleteBtn.closest('tr').remove();
          //   }
          // })
          // .catch(err => console.error('Delete failed:', err));
        }
      }
    });
  }
});

小提示:为什么用closest()?

如果你的Delete按钮里加了图标(比如<i class="fa fa-trash"></i>),点击图标时e.target会是<i>标签而不是按钮本身,用closest('.btn.btn-danger')可以向上找到最近的按钮元素,逻辑更可靠。


额外的小优化建议

你的Twig模板里,Show按钮用了重复的id="button",页面中的id必须是唯一的,建议去掉这个id,或者改成动态唯一的(比如id="show-btn-{{ produit.idProduit }}")。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 03:55:06