MODX FormIt表单提交后自动重定向求助:需保留当前页面
解决FormIt提交表单后自动重定向的问题
先给你揪出代码里一个容易忽略的小错误:表单的闭合标签写成了</from>,得改成</form>——这个拼写失误可能导致浏览器解析表单时出现异常,进而触发意外跳转,先把这个修正了再说。
接下来针对FormIt的配置和逻辑,我们从这几个方向排查解决:
1. 显式设置&redirectTo参数强制留在当前页
虽然你说没设置这个参数,但有时候FormIt可能会继承全局配置或hook的默认行为,显式指定重定向到当前资源能确保页面不跳转:
[[!FormIt? &hooks=`spam,email,FormItSaveForm,successMess` &formName= `Contact Form` &emailTpl=`emailChunkTpl` &emailTo=`email@gmail.com` &redirectTo=`[[*id]]` ]]
2. 检查自定义successMess Hook的逻辑
你用到的successMess是自定义hook,这极有可能是重定向的源头!如果这个hook里写了$modx->sendRedirect()这类代码,就会强制跳转页面。打开这个hook的代码,删掉重定向逻辑,改成直接渲染成功消息的逻辑,比如:
// 示例:修改successMess hook,去掉重定向,仅设置成功占位符 $modx->setPlaceholder('success_message', '你的消息已成功发送!'); return true;
3. 确认官方hook没有触发重定向
默认情况下,spam、email、FormItSaveForm这几个官方hook都不会自动触发重定向,但可以检查下email hook的配置,有没有不小心设置了&emailRedirectTo这类参数(不过你代码里没写,大概率不是这个问题)。
4. 清除浏览器缓存测试
有时候浏览器缓存的旧页面或表单状态会导致异常,清除缓存后再测试提交,看看是否还会跳转。
把表单闭合标签修正后,结合上面的配置调整,应该就能解决自动重定向的问题,让表单提交后停留在当前页面了。
内容的提问来源于stack exchange,提问作者Beusebiu
相关产品推荐
相关产品推荐

