1

JQuery検証プラグインを使用してフォームを検証します(http://docs.jquery.com/Plugins/Validation/

たとえば、フォーム内の電子メールを検証できます。

私がしたいのは、選択したユーザー名がすでに存在するかどうかを検証することです。したがって、データベースをクエリするサーバーメソッドを呼び出す必要があります。どうやってやるの ?

アップデート

バレクサンドルの答えから、私は次のことを試みます:

$.validator.addMethod("userName", 
    function(value, element)
    {
        $.get
        (
            "CheckUser.aspx?User=" + value, 
            function(data) 
            {
                if (data == "True") 
                {
                    return false;
                }
                else if (data == "False") 
                {
                    return true;
                }
                else 
                {
                    alert(data);
                }
            }
        );
    },
    "User already exists");

    $(document).ready
    (
        function() 
        {
            $("#aspnetForm").validate
            (
                {
                    rules: 
                    {
                        <%=txtUserName.UniqueID %>: 
                        {
                            required: true,
                            email: true,
                            userName: true                        
                        }
                    }
                }
            );
        }
    );

応答では、1 ou 0の代わりにブール値(True of False)を記述します。

検証関数が呼び出しであることを知っています。問題は、ユーザーが存在しなくても常にエラーメッセージが表示されることです。trueを返す前にアラートメッセージを入れて、到達したかどうかを確認しようとしています。だから私は理解できません、なぜそれが機能しないのですか...

4

2 に答える 2

2

非常に簡単で、プロジェクトに多くのことを適用するのは素晴らしい方法です

1-コードビハインドファイルを使用してverifyUserAvailability.aspxというaspxページを作成します

2-aspxファイルの最初の行を除くすべての行を削除します

3- Page_Loadイベント内の分離コードファイルで、データベースを次のように呼び出します。

protected void Page_Load(object sender, EventArgs e) {
    string username = Request["usr"];
    int r = 0;

    if(!String.IsNullOrEmpty(username))
        if( yourDAL.getUserAvailability(username) )
            // your method would send true if user is available to be used
            r = 1;

   Response.Clear();
   Response.Write(r);
   Response.Flush();
}

4-フォームページで、次のようなボタンを作成します

<input id="btnCheckAvailability" type="button" 
       value="Check availability" 
       onclick="javascript:checkAvailability();" />

5-checkAvailability()メソッドを作成します

<script type="text/language">

    function checkAvailability() {
        var $user = $("#UsernameInputBox");
        $.get("verifyUserAvailability.aspx?usr=" + $user.val(), function(data) {
            // this will call the page passing the username and return 1 or 0
            if( data == "1" ) 
                $user.css("background-color", "green");
            else 
                $user.css("background-color", "red");
        });
    }

</script>
于 2009-09-18T02:00:44.230 に答える
0

これでうまくいくはずです...

http://riderdesign.com/articles/Check-username-availability-with-JQuery-and-ASP.NET.aspx

また...

1つはサービスを呼び出す方法を示し、もう1つはページメソッドを呼び出す方法を示します。

jQueryを介したASP.NETサーバー側メソッドの呼び出し

于 2009-09-18T01:59:46.793 に答える