a标签根据js返回值判断页面是否跳转

本文介绍了在JavaScript中如何正确地使用return语句来控制函数的行为。通过实例展示了直接return在异步请求中的局限性,并提供了一种通过设置标志变量来确保函数逻辑按预期执行的方法。

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

   a标签再跳转之前先判断是否符合条件,符合可以跳转,不符合不可以跳转。

自己遇到的问题是:在js方法中根据条件就return结果,但是不行。

              原因是:在js方法中return后不会结束整个js方法(action里面会结束整个方法),所以下面的例子始终会返回false

例如(错误的):

function updateTrainClass(classId){
var url = '${createLink(controller:'trainClass', action: 'judgeBeforeUpdateClass')}';
        $.ajax({
            global:false,
            type: "POST",
            url: url,
            data: {
                id:classId
            },
            async: false,//同步等待结果的返回
            success:function(data){
                if(data.code==0){
                   return true
                }else{
                    alert("班级已关闭,不可修改")
return false } } })
return false }

 

 

 

a 链接:(根据js中的返回结果:返回false不跳转,返回true则跳转

<a  href="${createLink(controller:'trainClass' , action: 'edit',params:[id:params.classList[0]?.id])}" onclick="return updateTrainClass('000');">
                            <i class="glyphicon glyphicon-pencil"></i>
                            </a>

正确的(根据条件判断来改变flag的值,最终返回flag)

function updateTrainClass(classId){
        var flag = false;
        var url = '${createLink(controller:'trainClass', action: 'judgeBeforeUpdateClass')}';
        $.ajax({
            global:false,
            type: "POST",
            url: url,
            data: {
                id:classId
            },
            async: false,//同步等待结果的返回
            success:function(data){
                if(data.code==0){
                   flag = true
                }else{
                    alert("班级已关闭,不可修改")
                }
            }
        })
        return flag
    }

 

 

这是自己学习过程中的记录,方便自己回顾,好记性不如烂笔头

作者:艺至

 

转载于:https://www.cnblogs.com/sunjiguang/p/5372805.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值