Ajax 內部 return false 不起作用的解決方法
今天在寫Ajax的時候遇到一個問題,Ajax內部的 return false 不生效,並繼續執行後邊的程式碼。原始碼大概如下:
$(function(){ //Ajax呼叫處理 $.ajax({ type: "POST",//規定傳輸方式 url: "categoryAction",/URL data: {'cid':$('#cid').val()},//引數 success: function(data){ if('-1'==data){ return false; //此處return false不起作用 } else{ return true; } } }); alert(123); //ajax中的判斷條件是否成立,都會執行這步 });
後面百度查找了一些資料,原因如下:
Ajax發起的是非同步請求,而JS函式中其他程式碼執行的是同步請求,這就造成了不管Ajax中的請求是否結束,都不會影響js函式中其他程式碼的執行,所以return false並不是沒有執行,而是隻在Ajax內部起作用,在Ajax請求之外就不起作用了,繼續執行其他程式碼。
所以解決方案如下:
1.將Ajax請求方式設定為同步(Ajax預設async:true)在js執行到Ajax程式碼時,會停止所有頁面載入,頁面呈現假死狀態,當Ajax中的程式碼執行完畢後,才會繼續執行其他程式碼。
2.使用全域性變數返回結果。
改進後的程式碼如下:
$(function(){ //Ajax呼叫處理 var result =false; $.ajax({ async:false,//同步載入 type: "POST",//規定傳輸方式 url: "categoryAction",/URL data: {'cid':$('#cid').val()},//引數 success: function(data){ if('-1'==data){ result=false; } else{ result=true; } } }); return result; // 返回結果為true時,後面的程式碼才會執行。 alert(123); });
相關推薦
Ajax 內部 return false 不起作用的解決方法
今天在寫Ajax的時候遇到一個問題,Ajax內部的 return false 不生效,並繼續執行後邊的程式碼。原始碼大概如下: $(function(){ //Ajax呼叫處理 $.ajax({ ty
Shiro unauthorizedUrl 不起作用解決方法
Shiro 通過註解方式判斷當前使用者沒有許可權時,跳轉不到指定的錯誤頁面,就是因為 unauthorizedUrl 不起作用,解決方法就是在 shiro 配置中加上下面這一段配置(異常全路徑做key,錯誤頁面做value) <bean class="org.springfram
Qt 佈局設定stretch,不起作用解決方法
addWidget(QWidget *widget, int stretch = 0, Qt::Alignment alignment = Qt::Alignment()) insertStretch(int index, int stretch = 0) setStretchFactor(
flex佈局下文字超出省略號代替不起作用解決方法
專案中發現,在flex佈局下,希望目標元素文字超出省略號時,text-overflow: ellipsis屬性無效,結論是設定文字超出省略號的元素,display屬性不能為flex!!! display屬性不能為flex!!!display屬性不能為flex!!!設定成blo
android:layout_marginRight 不起作用解決方法
今天想在RelativeLayout的左右分別放上一個按鈕, 左邊按鈕用marginLeft=”10dp”,空出了10dp的距離,沒問題. 但是右邊的按鈕marginRight=”10dp”就是過不去. 試了很久,最後在這個程式碼前加了一條android:
.Net Mvc validateRequest設定為false不起作用的解決方案
再跟shp16一起搞CMS,框架計劃使用Mvc,昨天除錯的時候,總是報“從客戶端(content=”<P>This is a test</P…”)中檢測到有潛在危險的 Request.Form 值”根據下面的提示,說是將“validateRequest”設定為“false”就好了,可是無論
servlet3.0註解loadOnStartup不起作用解決方案
color fig 運行 exc back tar med -c spa 多次嘗試3.0在源碼中直接用註解配置loadOnStartup=1,即web應用啟動時創建servlet實例,發現不起作用,但是在web.xml配置則可以正常運行。先上源碼。 package l
iOS Git建立gitignore檔案, gitignore 不起作用解決辦法
1.建立gitignore檔案 開啟終端, cd 進入到專案所在目錄,輸入touch gitignore即可, 然後編輯 gitignore, 編輯成功之後, mv gitignore .gitignore換名字, 這個時候.gitignore檔案會自動消失, 點檔案不能顯示的. 在該資料夾下打
微信小程式設定height 100% 不起作用解決辦法
https://blog.csdn.net/wshpwangshiyu/article/details/79744884 問題:微信小程式設定背景圖片高度適應整個螢幕,設定height 100% 不起作用? .container-all{ width: 100%; he
Struts2中JSTL標籤不起作用解決辦法
1.設定某個jsp頁面使用el表示式,需要在jsp頁面加上(控制單個頁面) <%@ page isELIgnored="false"%> //我設定了這點就可以了, 2.看你的web.xml檔案中頭的引用應該是 2.4.xsd <web-app id="WebApp_
手機端input[type=date]的時候placeholder不起作用解決方案
手機端input[type=date]的時候placeholder不起作用解決方案 目前PC端對input 的date型別支援不好,我試下來的結果是隻有chrome支援。firefox、IE11 都不支援。而且PC端有很多日曆控制元件可供使用。就不去多考慮這點了。 那麼在移動端
4.不要在ajax中return false不會生效的
//校驗產品服務費費率 function validateProductServiceFeeRate(id, serviceFeeRate) { var message = true; $.ajax({ url: "/product/validateProductse
解決Tabhost.setCurrentTab()不起作用的方法
方法一 修改TabWidget 的 mSelectedTab欄位 try { Class<TabWidget> tabWidgetClass = (Class<TabWidget>) mTabhost.getTabW
BrowserSync的大坑,監聽不起作用解決辦法,附gulp瀏覽器同步自動重新整理部署方法
能將本地伺服器代理到localhost:3000/localhsot:3001的操作:按照官網來操作的程式碼是不起作用的:browser-sync start --proxy "127.0.0.1:8081" "E:/newcrm/trunk/4_Tools/crm/**/*.
Chrome瀏覽器中autocomplete="off"不起作用解決方案
統一 type toc 網上 word 清除 登錄 保存 input 多數瀏覽器默認會緩存input的值,只有使用ctl+F5強制刷新的才可以清除緩存記錄。 如果不想讓瀏覽器緩存input的值,有2種方法: 方法一: 在不想使用緩存的input中添加 autocompl
Git忽略檔案不起作用解決方案
開發過程中由開發工具生成的檔案一般不需要提交,但每次開發工具會自動去修改這些檔案,每次都要去提交這些東西,不提交會有一系列問題,很煩人。 可以通過配置.gitignore檔案讓git不在跟蹤記錄這些檔案。心血來潮去配置的時候,發現配
DialogFragment設定Cancelable(false)不起作用
這兩天碰到一個問題,在DialogFragment中想讓dialog不消失,一般說直接設定setCancelable(false)就完了,但始終沒有起作用。 程式碼如下: @Override public Dialog onCreateDialog(Bund
IE8下 元素hidden屬性不起作用解決
標籤:IE8 hidden不起作用 hidden無效 參考原文:http://itechnology.lofter.com/post/1ce97b55_6a11a0f 問題描述:寫專案時候部分頁面加了元素的hidden屬性,但是沒起作用,本應該隱藏的資料還是
web.xml error-page 不起作用解決方案
今天遇到一個問題(應該是個老問題,但網上答案各異),記錄下來 在web.xml中配置錯誤頁面跳轉如下: <error-page> <exception-type>java.lang.Exception</exception-type>
springmvc mybatis 註解的方式 事務不起作用解決方案
1、使用springmvc導致事務不起作用時,首先檢視是否元件重複掃描問題導致 由於採用的是SpringMVC、 MyBatis,故統一採用了標註來宣告Service、Controller。伺服器啟動時的載入配置檔案的順序為web.xml---root-con