2

入力したメールIDがデータベースに既に存在するかどうかを確認したい。そのためには、更新パネルのトリガーで非同期に呼び出すことができるように、テキストボックスのフォーカスが失われたイベントが必要です。一方、私のイベントでは、入力した値がデータベースに存在するかどうかを確認できます。

私は試した:

txtEmailId.Attributes.Add("onblur", "javascript:CheckEmailIdIsExist()");

もしそうなら、CheckEmailIdIsExist()javascriptメソッド内に何が必要ですか?javascript関数から非同期でデータベース値をチェックする方法は?

4

3 に答える 3

1

jQueryを使用してサイトのWebMethodへのAJAX呼び出しを行う方法を見てください。

function CheckEmailIdIsExist(args) {
   var loc = window.location.href;
   loc = (loc.substr(loc.length - 1, 1) == "/") ? loc + "default.aspx" : loc;
   $.ajax({
       type: "POST",
       url: loc + "/" + IsUniqueEmailAddress,
       data: "{" + args + "}",
       contentType: "application/json; charset=utf-8",
       dataType: "json",
       success: onSuccess,
       fail: onFail
   });
}

これはサーバー上にあります:

[WebMethod]
public static bool IsUniqueEmailAddress(string emailAddress)
{
    // do some processing here
    return true;
}

コントロールの値onblur="javascript:CheckEmailIdIsExist(this.value);"を渡す必要があるため、JavaScript関数の呼び出し方法を変更する必要があると思います。

于 2011-03-18T12:04:00.863 に答える
0

ScriptManagerにServiceReferenceを追加して、JavaScriptWebサービスプロキシを使用する

http://www.semenoff.dk/en/Code-Corner/ASP.Net.AJAX/WebService-From-JavaScript.aspx

または、JQueryのajaxメソッドを使用します。

http://api.jquery.com/jQuery.ajax/

URLパラメータはhttphandlerにすることができます。これは、電子メールアドレスをクエリ文字列パラメータとして受け取り、データベースをチェックして結果を返します。

于 2011-03-18T12:05:28.290 に答える
0

さて、サーバー側に存在する必要があるスクリプトへのXMLRequestを作成する必要があります。スクリプト自体が何らかの値を返す必要があり、それに基づいて、「emailId」がデータベース内に存在するかどうかを判断できます。

XMLRequestはajax呼び出しに使用されるメソッドであることに注意してください。この時点から、あなたはajaxについて読むべきだと思います。ライブラリ(jQueryなど)を使用する場合は、ライブラリが組み込まれている可能性があるため、実用的な実装を作成してデータを検証するのは非常に簡単で簡単です:)

于 2011-03-18T12:06:03.827 に答える