2011-08-17 5 views
0

J'utilise le code jQuery suivant pour styliser certaines entrées selon qu'elles sont focalisées ou qu'elles contiennent du contenu.jQuery: Ajouter une classe à une entrée lorsqu'une valeur est déjà entrée lors du chargement de la page

$('.Textbox') 
.focus(function() { $(this).addClass("selected") }) 
.blur(function() { if ($(this)[0].value == '') { $(this).removeClass("selected") } }); 

Mon problème est que certaines de mes entrées sont automatiquement remplies par le navigateur si l'utilisateur est un visiteur de retour. Comme les champs de nom d'utilisateur et mot de passe par exemple. Puisque les entrées ont une valeur entrée dedans, je veux les styliser différemment. Malheureusement, le jQuery n'appliquera pas les styles avant que l'utilisateur n'interagisse directement avec l'entrée.

Y at-il un moyen de voir si l'entrée a une valeur (sans que l'utilisateur interagisse avec l'entrée) et de lui donner un nom de classe?

Toute aide serait grandement appréciée.

+0

avez-vous essayé l'événement 'change' – BumbleB2na

Répondre

2

vous pouvez le faire sur « chargement de la page »

$(document).ready(function() { 
    $('.Textbox').each(function() { 
     $this = $(this); 
     if (this.value != '') $this.addClass('yourClass');   
    }); 
}); 
+0

Cela a fonctionné parfaitement. J'ai fait exactement ce dont j'avais besoin, merci! – jkupczak

0

Les événements focus() et blur() sont spécifiques à l'interaction de l'utilisateur. Vous devriez essayer l'événement change() dans jQuery, comme qui est déclenché lorsque la valeur d'une entrée change, même si ce changement a été déclenché par un programme et non seulement l'utilisateur: http://api.jquery.com/change/

+0

Merci pour la réponse. Je peux voir les applications, mais malheureusement, change() ne m'a pas aidé sur le chargement de la page. Peut-être que le navigateur remplit automatiquement les champs de saisie trop rapidement pour que cet événement se déclenche. – jkupczak

Questions connexes