8
votes

jQuery: la valeur par défaut textarea disparaît onclick

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

Mais je souhaite que cela soit fabriqué en jQuery. xxx


2 commentaires

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


8 Réponses :


2
votes
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);
      }
});

3 commentaires

Vous devez utiliser .blur et .focus comme on peut entrer et laisser le textarea à l'aide des onglets. Aussi $ (ceci) .val () = ""; devrait être $ (ceci) .val ("");


@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)



0
votes

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..');
        }
});


1 commentaires

Comme dit aux autres, le "Ceci devrait être supprimé." devrait être dans le