form ajax跳转,Fast中AJAX表单提交后如何实现跳转

本文介绍了在FastAdmin框架中,如何在AJAX表单提交后实现平滑跳转,同时保持FastAdmin的tab标签页管理。通过在表单回调事件中添加特定代码,可以实现兼容Toastr提示的页面跳转。此外,还分享了如何将跳转方法封装到全局函数中,简化代码复用。但请注意,这种方法不适用于FastAdmin的默认CRUD页面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Fast中AJAX表单提交后如何实现跳转

Fast默认采用iframe窗加载页面,直接使用JS提供的跳转方法会出现各种问题,分享一下在项目中自己使用的方法ly9vMzC8IDR87JICVFd2BA==

我们只需要在表单回调事件中加入如下代码,即可实现完美的跳转并且兼容Toastr的提示DfL7QA91tmWIyelg+42+7Q==Form.api.bindevent($("form[role=form]"), function(data, ret){

//注意这里显示提示信息 一定要加上 top

top.Toastr.success(ret.msg);

//新增窗口并关闭原来的 ----- 也就是跳转

var that = top.window.$("ul.nav-addtabs li.active");

var oldId = that.find('a').attr('node-id')

Fast.api.addtabs(url, title, icon);

top.window.$("ul.nav-addtabs li#tab_" + oldId + " .close-tab").trigger("click");

}提示:这里的跳转方法不适用于 Fast默认的crud页面,fast默认的页面打开iframe然后关闭,是没有跳转操作的。

看了上面的操作,可能有朋友说,哎你这个代码每个要跳转的表单都要写一遍吗?懂不懂啥叫公用啊?1FpOVHA/Do8ik2P1cHuiqA==

下面就告诉大家如何封装,更简单的一行调用nGgZqJElewt2kyG8oqYAkA==首先找到 public/assets/js/backend-init.js 这个文件

默认这个文件是这样shen儿的define(['backend'], function (Backend) {

});你需要给他改成这样define(['backend', 'fast'], function (Backend, Fast) {

//添加Backend的扩展方法

$.extend(true, Backend, {

api: {

redirect: function(url, title, icon) {

var that = top.window.$("ul.nav-addtabs li.active");

var oldId = that.find('a').attr('node-id')

//新增窗口

Fast.api.addtabs(url, title, icon);

//关闭原来的

top.window.$("ul.nav-addtabs li#tab_" + oldId + " .close-tab").trigger("click");

},

}

});

}然后上面调用的代码就可以改成:Form.api.bindevent($("form[role=form]"), function(data, ret){

//如果我们需要在提交表单成功后做跳转,可以在此使用Fast.api.redirect("链接") 进行跳转

top.Toastr.success(ret.msg);

Fast.api.redirect(ret.url);

});PS:如果你的backend-init.js和默认的不一样 那说明你是个大佬啦,肯定能看懂我这个代码怎么改的,所以就不考虑backend-init.js不一样的情况了

PSS: 我不清楚backend-init.js修改之后 程序关闭debug模式之后是否需要重新打包哦~请各位大佬动动手查询一下吧~

上述方法只是我自己实践摸索出来的,可能大家都有自己的方法,如果有更方便更实用的方法,欢迎在评论区留言哦~jbZJI1j+EHwKYbzLW0aw8A==

下面是常用的跳转写法,可能会导致的问题我也写在下面了这里不是正文哦,可以不用看~~

1.错误示范: window.location.hrefF2AGmWi4KKHrqmEf/ejvfQ==Form.api.bindevent($("form[role=form]"), function(data, ret){

window.location.href = '链接'

}在fast的默认的页面中直接使用window.location.href,会出现 浏览器输入框内url和当前页面url不符,页面窗口名称不对等等各种问题

2.错误示范:parent.localion.hrefpt0TPv62+tzRIlyVAJSZCg==Form.api.bindevent($("form[role=form]"), function(data, ret){

parent.location.href = '链接'

}直接使用parent.location.href会让页面重新刷新。原来打开的tab消失,体验不是很好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值