Question

Je suis en train d'écrire un script qui valide l'entrée utilisateur. Comme: longueur de plus de 5 lettre ou mot de passe et mot de passe correspondance réentrées. Mais comment puis-je obtenir quelle boîte d'entrée sous la forme a été cliqué? Je

$(function() {
    $('#register input').keyup(function() {
        if ($('#username').val().length < 5) {
            $('a.username').text("Please fill");
        } else {
            $('a.username').text("");
        }

        if ($('#password').val().length < 5) {
            $('a.password').text("asdasd");
        } else {
            $('a.password').text("");
        }

    });
});​

                          Nouvel utilisateur             Nom de l'utilisateur

        <label for="password">Password</label> <input type="password" id="password" name="password"><a class="password"></a>

    </fieldset>
</form>

Lorsque je clique sur l'un des éléments d'entrée, les pistes de code et il voit que la seconde entrée de mot de passe est pas plein champ et la deuxième balise <a> déclenche également. Dois-je utiliser plusieurs fonctions de .keyup pour chaque élément, ou est-il une méthode pour obtenir quel élément cliqué? Comme

if (clicked == $("input#username") && $('#username').val().length < 5) {
    $('a.username').text("Please fill");

} else {
    $('a.username').text("Please fill");

}​

mais cela ne fonctionne pas. Je pense qu'il devrait y avoir quelque chose de similaire.

Était-ce utile?

La solution

Vous pouvez utiliser $(this) dans le gestionnaire de se référer à l'élément l'événement a eu lieu le keyup. En outre, vous pouvez utiliser .next() pour passer de la au <a> vous définissez le texte, comme ceci:

$('#register input').keyup(function(){
  $(this).next().text($(this).val().length < 5 ? "Please fill" : "");
});

Autres conseils

En règle générale, vous devez utiliser événement spécifique obligatoire si vous voulez obtenir des événements spécifiques, plutôt que de les faire tous et de faire votre propre filtrage. (Si vous voulez le faire dans l'autre sens, vous voulez regarder soit this, $(this) ou l'événement , en fonction).

Cependant, pour une validation, il y a déjà du code pour le faire. Par exemple, le plugin de validation jQuery pour la validation de forme générale, et un l'extension spécifiquement pour les mots de passe . Dans vos chaussures, je au moins commencer par un de ceux plutôt que de construire des choses à partir de zéro.

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