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

使用Bootstrap5模态框/Jquery在Django中删除客户记录失败

问题诊断与修复方案

你的代码存在几个关键问题,导致点击确认删除按钮后无反应,逐一解决如下:

1. 按钮type属性冲突

模态框内的确认按钮同时设置了type="button"和type="submit",浏览器会忽略重复属性,仅识别第一个type="button",导致按钮无法触发表单提交。

修复:
删除按钮的type="button"属性,仅保留type="submit":

<button type="submit" class="btn btn-danger" id="deleteCustomerButton{{customer_record.id}}">Yes, I want to delete</button>

2. JQuery选择器错误与冗余逻辑

  • 你的JQuery代码使用$('#deleteCustomerButton')选择按钮,但实际按钮ID是动态生成的deleteCustomerButton{{customer_record.id}},选择器无法匹配到目标元素。
  • 在按钮点击事件内绑定表单提交事件属于冗余逻辑,表单提交后页面会自动跳转,移除模态框的操作没有必要。

修复:
直接移除这段JQuery代码(普通表单提交不需要额外JS)。如果需要保留交互逻辑,改用类选择器简化绑定:

<script>
$(document).ready(function () {
  // 给所有删除确认按钮绑定事件
  $('.delete-submit-btn').on('click', function() {
    $(this).closest('form').submit();
  });
});
</script>

同时给按钮添加对应class:

<button type="submit" class="btn btn-danger delete-submit-btn" id="deleteCustomerButton{{customer_record.id}}">Yes, I want to delete</button>

3. 删除触发按钮的href优化

触发模态框的a标签带有href="{% url 'delete_record' customer_record.id %}",虽然不会直接跳转,但为避免意外情况,建议修改为:

<a href="javascript:void(0)" class="btn btn-danger btn-sm deleteCustomer" data-bs-toggle="modal" data-bs-target="#deleteCustomer{{customer_record.id}}">Delete Customer</a>

4. Django视图验证

确保delete_record视图正确处理POST请求,示例代码:

from django.shortcuts import get_object_or_404, redirect
from .models import CustomerRecord

def delete_record(request, record_id):
    record = get_object_or_404(CustomerRecord, id=record_id)
    if request.method == 'POST':
        record.delete()
        return redirect('customer_list')  # 重定向到客户列表页
    return redirect('customer_list')

完成以上修改后,点击确认删除按钮即可正常提交表单,完成客户记录删除并跳转页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 17:10:40