Je suppose que vous voulez dire le texte de PlaceHolder qui est rendu dans les champs de saisie tant qu'aucune entrée n'a été entrée. Et vous voulez qu'il ne disparaisse qu'une fois que l'utilisateur entre un texte au lieu d'une fois qu'il concentre le champ?
a) Je découragerais cela. Je joue actuellement avec un jsFiddle pour mettre en œuvre cela et ce n'est pas trivial .. Et il y a le HTML5 Placeholder attribute que les navigateurs modernes rendront pour vous qui fournit cette fonctionnalité « native » ..
b) Il est un peu difficile . Mais here is the JSFiddle qui montre le code pertinent.
Voici le code de la Fiddle:
$("#item")
.addClass("watermark")
.val("Watermark")
.data('wm', true)
.focus(function() {
if ($(this).data('wm') === true) {
var that = this;
setTimeout(function() {
that.setSelectionRange(0,0);
}, 50);
}
})
.keydown(function (evt) {
if ($(this).data('wm') === true) {
$(this).val($(this).val().replace('Watermark', ''));
$(this).data('wm', false);
$(this).removeClass('watermark');
}
})
.blur(function() {
if ($(this).val().length === 0) {
console.log("ran change");
$(this)
.addClass("watermark")
.val("Watermark")
.data('wm', true);
}
});
Je suis assez sûr que le code peut encore être améliorée et peut-être mettre en son propre plugin jQuery .. Notez également que je n'ai pas testé si cela fonctionne sur IE .. (Et le Js a encore quelques valeurs codées en dur)
http: // stackoverflow.com/a/16471949/1257652 –