Je veux un textarea avec du texte par défaut. Lorsque l'utilisateur clique dans le Textarea Le texte par défaut doit être supprimé. Comment puis-je faire une valeur d'une textarea disparaître sur un clic?
Je le veux exactement comme ça, HTTP : //www.webune.com/forums/20101025cgtc.html p>
Mais je souhaite que cela soit fabriqué en jQuery. p>
8 Réponses :
var defaultTextAreaValue = "This should be removed.."; $('#textarea').focus(function(){ if($(this).val() == defaultTextAreaValue){ $(this).val(""); } }); $('#textarea').blur(function(){ if($(this).val() == "" || $(this).val() == defaultTextAreaValue){ $(this).val(defaultTextAreaValue); } });
Vous devez utiliser .blur code> et
.focus code> comme on peut entrer et laisser le textarea à l'aide des onglets. Aussi
$ (ceci) .val () = ""; code> devrait être
$ (ceci) .val (""); code>
@Aleksi est votre droite, je viens de tester ma propre suggestion et je me demandais pourquoi cela ne fonctionne pas :-)
Je veux que le Textarea affiche "Cela devrait être supprimé ..." sur Flou à nouveau, si rien n'a été entré. Tout comme l'exemple. De plus, le "Ceci doit être supprimé." Doit être vérifié dans la valeur par défaut (comme dans mon cas, la valeur par défaut de la TXtarea ne sera pas la même)
Vous avez besoin de deux gestionnaires, un pour le moment où l'élément se concentre et un pour quand il le perd. Lorsqu'il se concentre, vérifiez si la valeur n'est que des caractères d'espace et, le cas échéant, définissez la valeur sur la valeur par défaut.
$('#textarea').focus( function(){ var $this =$(this); if($this.val() == 'This should be removed..'){ $this.val(''); } }).blur(function() { var $this = $(this); if ($this.val().match(/^\s*$/) { // matches only spaces or nothing $this.val('This should be removed..'); } });
Comme dit aux autres, le "Ceci devrait être supprimé." devrait être dans le
Vous pouvez y accomplir même sans JavaScript en utilisant Mais vous devriez être conscient que tous les navigateurs ne le soutiennent pas encore. Dans ce cas, vous pouvez utiliser par exemple ce plugin: http://plugins.jquerery.com/project/ Place-espace d'entrée P> espace réservoir code> a>. p>
Cela devrait fonctionner: Démo en direct: strong> update: strong> p> Cela devrait le faire: < / p> Démo en direct: strong> http: //jsfiddle.net/g7ukn/2/ p> p>
Cela fonctionne comment je souhaite que, même si une chose reste une chose devrait vérifier la valeur par défaut pour "écrire quelque chose ...", donc si je fais:
@Karem choisissez la réponse de Scott. Il utilise la propriété defaultValue code> qui stocke la valeur initiale de l'élément Texarea. Donc,
données ('défaut') code> n'est pas nécessaire.
Je l'utilise comme un peu plus générique - il effacera la valeur de l'élément à la mise au point, mais renvoie la valeur de l'élément à la valeur par défaut si vide.
HTML5 a maintenant l'attribut d'espace réservé. développeur.mozilla.org/fr/html/element/textarea
Solution très simple non-jQuery dépendante:
Et si quelqu'un veut faire ce truc sur un Texareas chargé Ajax, vous pouvez y parvenir avec le .Live () code> événement;)
$('#textarea').live('focusin',function () {
if (this.value === 'leDefault ...') {
this.value = '';
}
});
$('.larger').live('focusout',function () {
if (this.value === '') {
this.value = 'leDefault';
}
});
Essayez simplement la ci-dessous. Première fois que vous cliquez sur la zone de texte, il vide le contenu.
$('#textarea').focus(function(){ $(this).empty(); });
Il serait dommage de peupler un textarea avec un tas de texte, puis concentrez-vous sur un élément différent, puis revenez et concentrez-vous sur la Texarea uniquement pour regarder tout votre texte saisi disparaître :-(
se mettre d'accord. J'ai posté cela presque 5 ans de retour :)
Si cela fonctionne en JavaScript plain, pourquoi la compliquer avec jQuery?
@Davidthomas je veux avoir le texte "Ceci devrait être supprimé." Non pas dans une variable JavaScript mais dans le HTML, et je préfère JQuery mieux