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 }
這是自己學習過程中的記錄,方便自己回顧,好記性不如爛筆頭
作者:藝至