Effacer une entrée sur focus avec jQuery et retour sur le flou
Cela fonctionne presque. Cependant, au moment de quitter le champ "defaulttext" apparaît plutôt que le texte original de la valeur. Pas sûr de la façon la plus efficiente de l'echo de la variable à l'intérieur de defaultText.
$(function() { var defaultText = $(this).val(); $('input[type=text]").focus(function() { $(this).val("); }); $('input[type=text]").blur(function() { $(this).val('defaultText'); echo }); });
Vous devez vous connecter pour publier un commentaire.
Mise à jour
Navigateurs sont progressivement mise en œuvre de la
placeholder
attribut, qui offre la possibilité d'afficher une "astuce" pour l'utilisateur.https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input#attr-placeholder
data-
Vous devez supprimer les ' marques autour de la defaultText variable dans votre méthode set (val).
Essayer quelque chose de hte le long de lignes de
Cette solution nécessite jQuery!
J'ai enveloppé cette fonctionnalité dans un module utils comme suit:
Dans le code HTML:
Ajouter:
class="input-autoclear"
pour chaque entrée que vous souhaitez inclure.Définir la valeur par défaut:
<input ... value="defaultValue" ... >
Créer des classes css pour les niveaux de gris et noir, texte ou ce que vous voulez.
Personnellement, je suis en utilisant
.gray { ... }
et.black { ... }
mais vous pouvez mieux les noms.Enfin:
Feu le utils modules à l'aide de la méthode:
Assurez-vous que le code pour le module habite à l'extérieur du document.prêt appel et vous voudrez sans doute dans la portée globale de votre application.
Pour en savoir plus sur la bonne javascript module d'écriture, visitez ce l'article.
Celui-ci va enregistrer le texte par défaut à l'aide de l' .fonction data (). Donc pas besoin d'un surplus de balisage.
Simpl écrire
$(this).val(defaultText):
sans le "s d'autre il l'habitude de la considérer comme une variable.Utilisation de HTML5, l'attribut espace réservé sur chaque balise d'entrée, par exemple:
Je funetuned ce code peu.
Essayer dans votre firebug:
Vous trouverez que
est probablement pas ce que vous voulez.
Si la valeur initiale de l'entrée est le texte par défaut, l'obtenir comme ceci:
Être conscient que cela ne peut fonctionner correctement que s'il y a une saisie de texte sur votre page.
Et également supprimer des citations en:
Vous êtes pas référence à la variable
defaultText
. Vous êtes de passage d'une chaîne, car il est enveloppé dans des guillemets.this
mot-clé mal à accéder à la valeur de la variabledefaultText
. Si vous avez besoin d'aide pour comprendre lethis
mot-clé, ici, est une bonne ressource: learningjquery.com/2007/08/what-is-thisC'est le travail! J'utilise moi-même: