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

如何使用JavaScript实现删除前确认弹窗及批量删除功能

一、修复单条删除二次确认功能

原有代码问题

  • id属性不可重复:多账号列表下id="del"会出现id冲突,需改为class属性
  • 选择器语法错误:querySelectorAll("del")是匹配<del>标签,匹配class需要加.前缀
  • 节点集合绑定事件错误:querySelectorAll返回的是DOM节点集合,需遍历后逐个绑定点击事件
  • 语法缺漏:原JS代码少了事件绑定的闭合括号)

修改后的代码

HTML代码(单条删除按钮)

<a href="uses_script.php?user_id=<?php echo $row['id'];?>&username=<?php echo $_SESSION['user_username']; ?>" 
  class="del"
  data-toggle="tooltip" 
  data-placement="top"
  title="删除"> 
  <i class="mdi mdi-close"></i>
</a>

JavaScript代码(单条删除确认)

// 选中所有删除按钮
const deleteIcons = document.querySelectorAll(".del");
// 遍历绑定点击事件
deleteIcons.forEach(delBtn => {
  delBtn.addEventListener("click", (e) => {
    const isConfirm = confirm("确定要删除该账号吗?");
    // 点击取消则阻止默认跳转行为
    if (!isConfirm) e.preventDefault();
  })
})

二、批量删除功能实现

第一步:新增批量操作UI元素

在账号列表表头加全选复选框、批量删除按钮,每条账号行首加单选复选框:

<!-- 表头位置加全选框和批量删除按钮 -->
<th><input type="checkbox" id="selectAll"> 全选</th>
<th colspan="2"><button id="batchDelBtn" type="button">批量删除</button></th>

<!-- 每一行账号的行首加选择框,存储当前行账号id -->
<tr>
  <td><input type="checkbox" class="userCheck" value="<?php echo $row['id']; ?>"></td>
  <!-- 其他账号信息列 -->
  <td>...</td>
  <td>原有单条删除按钮位置</td>
</tr>

第二步:新增批量删除JS逻辑

// 全选功能
const selectAll = document.querySelector("#selectAll");
const userChecks = document.querySelectorAll(".userCheck");
const batchDelBtn = document.querySelector("#batchDelBtn");

// 全选/取消全选绑定
selectAll.addEventListener("change", () => {
  userChecks.forEach(check => {
    check.checked = selectAll.checked;
  })
})

// 批量删除逻辑
batchDelBtn.addEventListener("click", () => {
  // 收集选中的账号id
  const selectedIds = Array.from(userChecks).filter(check => check.checked).map(check => check.value);
  if (selectedIds.length === 0) {
    alert("请先选择要删除的账号");
    return;
  }
  // 二次确认
  const isBatchConfirm = confirm(`确定要删除选中的${selectedIds.length}个账号吗?`);
  if (isBatchConfirm) {
    // 拼接参数跳转到处理页面,也可以用AJAX发送请求
    window.location.href = `uses_script.php?user_ids=${selectedIds.join(',')}&username=<?php echo $_SESSION['user_username']; ?>`;
  }
})

第三步:后端适配批量删除逻辑

在uses_script.php中接收批量id参数,拆分后做删除处理即可,注意后端必须做权限校验,不能完全依赖前端判断避免恶意请求。

附:账号管理界面参考图

账号管理界面

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:00:01