首頁 > 後端開發 > php教程 > ajax設定async校驗使用者名稱是否存在

ajax設定async校驗使用者名稱是否存在

小云云
發布: 2023-03-19 13:26:01
原創
1389 人瀏覽過

新增一個用戶的時候,需要判斷這個手機號碼是否存在,最開始的想法很簡單在textbox上設定一個onmouseout事件,在IE下有很好的體現,但在谷歌上卻不是很有好。本文主要為大家帶來一篇ajax設定async校驗使用者名稱是否存在的實作方法。小編覺得蠻不錯的,現在就分享給大家,也給大家做個參考。一起跟著小編過來看看吧,希望能幫助大家。

ok,換個思路,在提交表單的時候來檢驗:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

//检验手机号码是否存在

function checkRepeat(){

    var id = '${item.id}';

    var mobile = $("#mobile").val();

    //alert(id);

    if(id==null||id==''){

        $.ajax({

            url: '/admin/adminuser/ajaxCheckReapet.shtml?mobile='+mobile,

            type: 'GET',

            dataType: 'text',

            cache:false,

          async:false,

            timeout: 5000,

            error: function(){alert('数据获取失败!');},

            success: function(msg){

                if("1"==msg){

                    $("#spMobile").attr("style","display:block;color:red;");

                    $("#hiddenMobile").attr("value","true");

                }else{

                    $("#spMobile").attr("style","display:none;");

                    $("#hiddenMobile").attr("value","false");

                }

                 

            }

        });

         

    }

    return true;

}

 

 

function save(){

    if(checkSImg()&&checkRepeat()){

        var hiddenMobile = $("#hiddenMobile").val();

        //alert(hiddenMobile);

        if(hiddenMobile=='false'){

            if($("#form1").form("validate")){

                $("#form1").submit();

            }

             

        }

    }

}

登入後複製

然後在這個過程中發現一個很有趣的東西:hiddenMobile返回false的時候,表單仍然提交了

啊,糾結啊,又要動腦經,FK

我想啊想,想啊想,找啊找,突然間想到了async,雖然之前沒用過這個玩意,但蒙一下吧,加了個async:false,我擦,再次演示的時候,居然有作用了

cache:false,
async:false,

好,解決問題,再來深入研究一把:哼哼,又有收穫咯,自己看吧

async預設的設定值為true,這種情況為非同步方式,就是說當ajax發送請求後,在等待server端回傳的這個過程中,前台會繼續執行ajax區塊後面的腳本,直到server端回傳正確的結果才會去執行success,也就是說這時候執行的是兩個線程,ajax區塊發出請求後一個線程和ajax區塊後面的腳本(另一個線程)


1

2

3

4

5

6

7

8

9

10

11

12

13

$.ajax({

     type:"POST",

     url:"Venue.aspx?act=init",

      dataType:"html",

     success:function(result){  //function1()

       f1();

       f2();

    }

     failure:function (result) {

      alert('Failed');

     },

 }

 function2();

登入後複製

在上例中,當ajax區塊發出請求後,他將停留function1(),等待server端的返回,但同時(在這個等待過程中),前台會去執行function2(),也就是說,這個時候出現兩個線程,我們這裡暫且說為function1() 和function2()。

當把asyn設為false時,這時ajax的請求時同步的,也就是說,這個時候ajax塊發出請求後,他會等待在function1()這個地方,不會去執行function2 (),知道function1()部分執行完畢。

注意

同步的意思是當JS程式碼載入到目前AJAX的時候會把頁面裡所有的程式碼停止加載,頁面出去假死狀態,當這個AJAX執行完畢後才會繼續執行其他程式碼頁面假死狀態解除。

而異步則這個AJAX程式碼運行中的時候其他程式碼一樣可以運行。

jquery的async:false,這個屬性

相關推薦:

jQuery中ajax屬性async的範例詳解

#script標籤中的async和defer用法

javascript中async的用法詳解

以上是ajax設定async校驗使用者名稱是否存在的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
node.js - 如何讓低版的瀏覽器支援async?
來自於 1970-01-01 08:00:00
0
0
0
javascript - 如何在非async函數下使用await
來自於 1970-01-01 08:00:00
0
0
0
javascript - eslint 報錯async
來自於 1970-01-01 08:00:00
0
0
0
使用 Async/Await 與 .then()
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板