如何用jQuery实现表单提交后提示成功并跳转页面
问题修复方案
先指出你代码里的几个关键问题:
- 重复定义了
dataType,同时写了'text'和'html',需删除其中一个,统一格式即可; - 错误添加了
contentType:false和processData:false,这两个参数仅适用于文件上传场景(使用FormData时),而你用serialize()生成的是urlencoded格式表单数据,加这两个参数会导致后端无法正确接收数据; - success回调里的
xmlHttp是后端返回的响应内容,并非请求对象,判断xmlHttp.code !=200的逻辑不成立。
以下是修改后的代码,可实现你需要的「显示成功提示+跳转指定页面」效果:
$("#entra").click(function(e){ e.preventDefault(); // 获取表单序列化数据 var dati = $("#area-login").serialize(); var successMsg = "提交成功"; $.ajax({ type: "POST", url: "inviaok.asp", cache: false, dataType: "html", data: dati, success: function(response) { // 弹出成功提示,也可替换为页面内元素展示 alert(successMsg); // 跳转到指定页面 top.location.href = '/default.asp'; }, error: function() { alert("提交失败,请重试..."); } }); });
如果后端会返回明确的成功/失败标识(比如返回"success"字符串),可以优化success回调逻辑:
success: function(response) { if(response.trim() === "success"){ alert(successMsg); setTimeout(function(){ top.location.href = '/default.asp'; }, 2000); // 延迟2秒跳转,让用户看到提示 } else { alert("提交失败,请检查输入后重试"); } }
内容的提问来源于stack exchange,提问作者Fabio Lantier
相关产品推荐
相关产品推荐

