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 }
这是自己学习过程中的记录,方便自己回顾,好记性不如烂笔头
作者:艺至