ホームページ  >  記事  >  ウェブフロントエンド  >  ajaxを使用して、登録されたユーザー名が存在するかどうかを確認します

ajaxを使用して、登録されたユーザー名が存在するかどうかを確認します

php中世界最好的语言
php中世界最好的语言オリジナル
2018-04-03 16:16:193333ブラウズ

今回は、ajaxを使用して登録されたユーザー名が存在するかどうかを確認する方法を紹介します。 ajaxを使用してユーザー名が存在するかどうかを確認する場合の注意点は何ですか? 以下は実際的なケースです。

新しいユーザーを追加する場合、携帯電話番号が存在するかどうかを判断する必要があります。最初のアイデアは、テキストボックスに

onmouseout イベントを設定するという非常に簡単な方法です。これは IE にはよく反映されますが、Google には反映されません。とても良いです

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

考えて考えて、考えて考えて、検索して検索して、突然非同期のことを思い出しました。これまで一度も使ったことはありませんでしたが、非同期を追加しました。 :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();
上記の例では、ajax ブロックがリクエストを行った後、function1() に留まり、サーバーからの戻りを待ちますが、同時に (この待機プロセス中)、フロントデスクは function2() を実行します。つまり、この時点で 2 つのスレッドが表示されます。ここでは function1() と function2() について説明します。

asyn が false に設定されている場合、ajax リクエストは同期です。つまり、この時点で ajax ブロックはリクエストを送信した後、function1() で待機し、function2() を実行しません。 ()部分が実行されます。

同期とは、JS コードが現在の AJAX にロードされるときに、ページ内のすべてのコードのロードが停止し、AJAX が完了するとページの一時停止されたアニメーションが解除されることを意味します。コード ページは引き続き実行され、アニメーションの一時停止状態は解除されます。

この AJAX コードの実行中に、他のコードを非同期的に実行できます。

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨書籍:

Ajax+mysqで都道府県・市区町村の3段階連携リストを実現


JsonとXMLデータのAjax送信手順を詳しく解説(コード付き)

以上がajaxを使用して、登録されたユーザー名が存在するかどうかを確認しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。