ホームページ >バックエンド開発 >PHPチュートリアル >ajax はユーザー名が存在するかどうかを確認するために async を設定します
新しいユーザーを追加するときは、携帯電話番号が存在するかどうかを確認する必要があります。最初のアイデアは、テキストボックスに onmouseout イベントを設定するという非常にシンプルな方法ですが、Google ではあまり適切ではありません。この記事では主に、ユーザー名が存在するかどうかを確認するために Ajax async を設定する実装方法を紹介します。編集者はこれが非常に良いものだと思ったので、皆さんの参考として今から共有します。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。
OK、フォームを送信するときに考えを変えて確認してください:
//检验手机号码是否存在 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 がリクエストを送信すると、サーバーが戻るのを待ちます。サーバーが正しい結果を返した場合にのみ成功が実行されるまで、ajax ブロックの背後でスクリプトを実行し続けます。つまり、この時点では 2 つのスレッドが実行され、1 つのスレッドは ajax ブロックがリクエストを送信した後に実行され、スクリプトは ajax ブロックの送信後に実行されます。 block (別のスレッド)
$.ajax({ type:"POST", url:"Venue.aspx?act=init", dataType:"html", success:function(result){ //function1() f1(); f2(); } failure:function (result) { alert('Failed'); }, } function2();
asyn が false に設定されている場合、ajax リクエストは同期です。つまり、この時点で ajax ブロックはリクエストを送信した後、function1() で待機し、function2() を実行しません。 ()部分が実行されます。
注 同期とは、JS コードが現在の AJAX にロードされるときに、ページ内のすべてのコードのロードが停止し、AJAX が完了するとページの一時停止されたアニメーションが解除されることを意味します。コード ページは引き続き実行され、アニメーションの一時停止状態は解除されます。
この AJAX コードの実行中に、他のコードを非同期的に実行できます。
jqueryのasync:false、この属性
関連する推奨事項:
以上がajax はユーザー名が存在するかどうかを確認するために async を設定しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。