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

AJAX表单POST首次提交正常第二次触发页面重载的原因及解决方法

问题根因

这是典型的动态DOM事件绑定失效问题:

  • 页面首次加载时,你给id为test的表单绑定了submit事件拦截逻辑,此时表单是静态DOM元素,绑定生效,第一次删除可以正常阻止表单默认提交行为
  • 第一次删除成功后,你调用load()方法替换了整个#deleteMangement区域的内容,原来绑定了事件的#test表单被完全移除,新加载进来的#test表单是全新的DOM元素,之前绑定的submit事件没有应用到新元素上
  • 第二次点击删除按钮时,没有事件拦截逻辑,表单触发默认的提交行为,就会重载整个页面

解决方法

推荐使用事件委托的方式绑定submit事件,把事件绑定到页面加载后永远不会被替换的父级元素上,就算内部表单被替换,事件仍然会生效。
把你现有的JS代码替换为以下内容即可:

// 将事件委托到document上,适配内部表单动态替换的场景
$(document).on("submit", "#test", function(event){
  event.preventDefault();
  $.post( "deleteManagement.php", $(this).serialize(), function(data){
    $("#output").html(data);
    $("#deleteMangement").load(location.href + " #deleteMangement");
  });
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 12:24:03