如何使用 jQuery 提交表单并跳转到新页面(避免无限循环)

陌静姑娘_1069

陌静姑娘_1069

2026-06-14

302人浏览

原创

如何使用 jQuery 提交表单并跳转到新页面(避免无限循环)

本文详解如何通过 jQuery 安全提交表单并跳转至目标页面(如 sorgu.php),重点解决因重复执行 $("#jsSorgula").submit() 导致的无限重定向/刷新问题,并提供可落地的防重提交与参数传递方案。

本文详解如何通过 jquery 安全提交表单并跳转至目标页面(如 `sorgu.php`),重点解决因重复执行 `$("#jssorgula").submit()` 导致的无限重定向/刷新问题,并提供可落地的防重提交与参数传递方案。

在 Web 开发中,常需通过前端交互(如点击按钮)将用户输入提交至另一页面进行处理。但若逻辑设计不当——尤其是依赖全局变量(如 $count = 0)做“首次执行”判断——极易引发无限表单自动提交循环:页面加载 → 读取 URL 参数 → 自动触发表单 submit → 页面重载 → 再次读取参数 → 再次 submit……如此往复。

你的 sorgu.php 中存在典型问题:

$count = 0; // ❌ 每次 JS 执行都重置为 0,无法持久化状态
$(document).ready(function(){
    if ($count == 0) {
        $keys = getUrlVars()["key"];
        $('#siparis_keyId').val($keys);
        $("#jsSorgula").submit(); // ⚠️ 此处触发 POST,但页面重载后又执行一遍
        $count++; // ✅ 但 $count 在新页面 JS 中仍是 0!
        alert($count);
    }
});

$count 是 JavaScript 变量,不会跨页面保留,每次 sorgu.php 加载都会重新初始化为 0,导致 if ($count == 0) 永远为真,形成死循环。

jQuery 1.12.4
jQuery 1.12.4

jQuery 1.12.4是jQuery 1.x系列的最后一个正式稳定版本,由jQuery团队于2016年发布。该版本主要面向需要兼容旧版浏览器环境的网站和Web应用,尤其适用于仍需支持Internet Explorer 6、Internet Explorer 7、Internet Explorer 8等老旧浏览器的项目。

下载

✅ 正确解法:分离“参数预填充”与“表单提交”逻辑,禁止自动 submit,改由用户显式触发或受控提交

✅ 推荐方案:URL 参数 + 手动提交(安全、可控、无循环)

  1. 在 header.php 中,点击时直接跳转带参 URL(不修改 href 属性)
    避免污染 DOM 属性,改用 window.location.href 显式导航:
$("#siparis_Sorgula").on("click", function(e) {
    e.preventDefault(); // 阻止默认 a 标签跳转
    const key = $.trim($("#siparis_key").val());
    if (!key) {
        alert("Lütfen sipariş kodunu giriniz!");
        return;
    }
    // 直接跳转到 sorgu.php?key=xxx,让后端处理
    window.location.href = "sorgu.php?key=" + encodeURIComponent(key);
});
  1. 在 sorgu.php 中,仅预填充表单,不自动提交
    移除 $("#jsSorgula").submit(),改为仅设置 input 值,由用户点击按钮确认:
$(document).ready(function() {
    const urlParams = new URLSearchParams(window.location.search);
    const key = urlParams.get("key");
    if (key) {
        $("#siparis_keyId").val(decodeURIComponent(key));
        // ✅ 可选:聚焦输入框或提示用户
        $("#siparis_keyId").focus();
    }
});

// 可选:增强体验 —— 回车键提交
$("#siparis_keyId").on("keypress", function(e) {
    if (e.which === 13) { // Enter 键
        e.preventDefault();
        $("#jsSorgula").submit();
    }
});
  1. 确保表单 action 正确指向处理脚本(如 sorgu.php 自身)
    
    

⚠️ 注意事项与最佳实践

  • 永远避免在 $(document).ready 中无条件调用 .submit():除非你明确控制流程(如 AJAX 提交后手动跳转),否则极易引发循环。
  • 不要依赖 JS 变量做“页面级唯一性”判断:localStorage 或 sessionStorage 可临时存储状态,但此处无需——URL 参数本身已是可靠上下文。
  • 始终对用户输入做 encodeURIComponent() 编码:防止特殊字符(如 &, =)破坏 URL 结构。
  • 服务端必须校验 $_GET['key'] 和 $_POST['siparis_key']:前端逻辑不可信,防篡改与空值处理需在 PHP 层完成。
  • 若需 AJAX 提交(不跳转):应统一用 $.post() 或 fetch(),并在成功回调中跳转或更新 DOM,而非混合 form.submit() 与页面跳转。

✅ 总结

解决“jQuery 表单跳转无限循环”的核心在于:切断自动提交链路,将“参数传递”与“业务提交”解耦。优先使用语义清晰的 URL 参数导航 + 手动表单提交,既符合 HTTP 规范,又易于调试和维护。对于你的场景,删除 sorgu.php 中所有自动 submit 代码,仅保留参数回填逻辑,即可彻底规避循环风险。

相关专题

更多
jquery插件有哪些
jquery插件有哪些

jquery插件有jQuery UI、jQuery Validate、jQuery DataTables、jQuery Slick、jQuery LazyLoad、jQuery Countdown、jQuery Lightbox、jQuery FullCalendar、jQuery Chosen和jQuery EasyUI等。本专题为大家提供jquery插件相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.12

581

5

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

2023.10.13

1016

3

jquery删除元素的方法
jquery删除元素的方法

jquery可以通过.remove() 方法、 .detach() 方法、.empty() 方法、.unwrap() 方法、.replaceWith() 方法、.html('') 方法和.hide() 方法来删除元素。更多关于jquery相关的问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.10

2142

8

jQuery hover()方法的使用
jQuery hover()方法的使用

hover()是jQuery中一个常用的方法,它用于绑定两个事件处理函数,这两个函数将在鼠标指针进入和离开匹配的元素时执行。想了解更多hover()的相关内容,可以阅读本专题下面的文章。

2023.12.04

2128

12

jquery实现分页方法
jquery实现分页方法

在jQuery中实现分页可以使用插件或者自定义实现。想了解更多jquery分页的相关内容,可以阅读本专题下面的文章。

2023.12.06

493

4

jquery中隐藏元素是什么
jquery中隐藏元素是什么

jquery中隐藏元素是非常重要的一个概念,在使用jquery隐藏元素之前,需要先了解css样式中关于元素隐藏的属性,比如display、visibility、opacity等属性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

317

5

jquery中什么是高亮显示
jquery中什么是高亮显示

jquery中高亮显示是指对页面搜索关键词时进行高亮显示,其实现办法:1、先获取要高亮显示的行,获取搜索的内容,再遍历整行内容,最后添加高亮颜色;2、使用“jquery highlight”高亮插件。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

626

5

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

2026.01.13

269

11

jQuery下载、CDN引入与版本管理指南
jQuery下载、CDN引入与版本管理指南

本专题围绕 jQuery 下载、CDN 引入、本地部署、版本管理及升级迁移展开,详细介绍 jQuery 官方版本区别、CDN 配置方式、jQuery 4.x 更新内容、Migrate 插件使用及常见加载报错解决方案,适合新手学习、企业项目部署以及老系统维护升级场景。

2026.06.01

223

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
jQuery官方API文档
jQuery官方API文档

共0课时 | 0人学习

jQuery 教程
jQuery 教程

共42课时 | 16.3万人学习

HTML+CSS基础与实战
HTML+CSS基础与实战

共132课时 | 18.8万人学习