Ma solution est proche de ce que Dan a fourni ci-dessus .
<script language="javascript" type="text/javascript">
function SwapLabel(id, label, alttype) {
$(id).focus(function() {
if (this.value == label) {
this.value = "";
if (this.type == 'text' && label == 'Password') {
this.type = alttype;
}
}
});
$(id).blur(function() {
if (this.value == "") {
this.value = label;
if (this.type == alttype && label == 'Password') {
this.type = 'text';
}
}
});
}
$(document).ready(function() {
SwapLabel('#UserName', 'Username', '');
SwapLabel('#Password', 'Password', 'password');
});
</script>
Une alternative serait ici d'omettre le paramètre « étiquette », et il suffit d'utiliser la valeur « titre », ce qui est essentiellement ce que labelify.js fait. Vous pourriez ajouter dans la partie de labelify qui applique ces gestionnaires d'événements à toutes les entrées de texte de type si vous le souhaitez. Ou télécharger labelify et ajoutez le code ci-dessous si nécessaire:
if (this.type == 'text' && label == 'Password') {
this.type = alttype;
}
if (this.type == 'text' && label == 'Password') {
this.type = alttype;
}
Le seul avantage mon extrait a plus labelify est qu'il comprend la réponse à votre question initiale:
Je me demande s'il est possible en quelque sorte à afficher l'étiquette "Mot de passe" comme texte (au lieu de ••••) dans le champ mot de passe?
À moins que je me trompe les docs de plugin ne mentionnent pas un mot de passe. J'ai juste changé rapidement l'un des types de champs en 'mot de passe' et tous les caractères ont tourné les points. Est-ce que ce plug-in fonctionne avec les champs de mot de passe comme demandé par l'OP? – megaSteve4
Même histoire ici. C'est seulement pour les champs de texte, pas pour les champs de mot de passe. –