Question

J'utilise le plug-in JQuery Validation pour valider un formulaire ( http://docs.jquery.com. / Plugins / Validation / )

Par exemple, je peux valider un email sous une forme.

Ce que je voudrais faire est de valider si le nom d'utilisateur choisi existe déjà. J'ai donc besoin d'appeler une méthode de serveur qui interroge la base de données. Comment puis-je faire cela?

UPDATE

De balexandre répondre, j’essaie ce qui suit:

$.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                        
                        }
                    }
                }
            );
        }
    );

Dans la réponse, j'écris un booléen (vrai ou faux) au lieu de 1 ou 0.

Je sais que ma fonction de validation est un appel. Le problème est que le message d'erreur est toujours affiché même si l'utilisateur n'existe pas. J'essaie de mettre un message d'alerte avant le retour true pour voir si c'est atteint et c'est le cas. Donc, je ne comprends pas pourquoi ça ne marche pas ...

Était-ce utile?

La solution

assez facile et c’est une belle thcnique que j’applique beaucoup sur mes projets

1: créez une page aspx appelée verifyUserAvailability.aspx avec un fichier code-behind

.

2 - supprime toutes les lignes sauf la première du fichier aspx

3: dans le fichier code-behind de l'événement Page_Load , appelez votre base de données comme suit

.
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 - maintenant dans votre page de formulaire, créez un bouton comme

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

5 - crée la méthode 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>

Autres conseils

Cela devrait faire l'affaire ...

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

OU ...

Une réponse montre comment appeler un service & amp; la seconde montre comment appeler une méthode de page.

Appel d'une méthode côté serveur ASP.NET via jQuery

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top