2010-11-12 7 views
4

J'ai une zone de texte qui, lorsqu'elle est en surbrillance, doit vider le support de texte et, lorsqu'elle n'est pas floue, récupérer le texte d'origine ou conserver le texte qui a été écrit pendant le focus.Html Textarea Placeholder

EDIT:

je sais comment sélectionner la zone de texte. $ ("textarea"). Text(); Je ne suis pas sûr de savoir comment effacer le contenu lorsque vous cliquez sur la zone de texte à rien et puis de nouveau récupérer le contenu hors de la mise au point.

+0

Vous avez donc deux éléments - 'textarea' et 'textholder'. 'textarea' devrait prendre et stocker le contenu de 'textholder' quand il obtient le focus, et redonner ce même texte à 'textholder' quand il perd le focus? –

+0

Alors, quelle est votre vraie question? Où se situe votre problème? –

+0

@guys désolé ma langue maternelle n'est pas l'anglais. –

Répondre

8

Il semble que vous essayiez de faire les choses dans les zones de texte, et si vous supprimez la valeur, vous obtenez à nouveau les instructions. Essayez ceci

<textarea id="a">Message</textarea> 

var standard_message = $('#a').val(); 
$('#a').focus(
    function() { 
     if ($(this).val() == standard_message) 
      $(this).val(""); 
    } 
); 
$('#a').blur(
    function() { 
     if ($(this).val() == "") 
      $(this).val(standard_message); 
    } 
); 

Vous pouvez le voir fonctionner here.

+0

merci beaucoup. exactement ce que je cherchais. j'essayais de sous-utiliser quelle fonction utiliser .focus et .blur merci cambraca –

+0

Pour une fonctionnalité plus complète polyfill/shim de l'attribut natif «placeholder», consultez ce grand projet: http://jamesallardice.github.io/Placeholders .js /. – Oliver

13

Il suffit d'ajouter espace réservé param:

<input type="text" name="name" placeholder="input placeholder" /> 
<textarea name="comment" placeholder="textarea placeholder"></textarea> 
+1

placeholder est un attribut HTML5 et ne fonctionne pas dans IE7 ou IE8. Soyez avisé que, à moins d'avoir une étiquette ou d'utiliser une solution basée sur javascript, votre formulaire sera brisé dans les navigateurs mentionnés précédemment. – siliconrockstar

+1

@siliconrockstar - Cela ne marchera pas non plus dans IE9. Cependant, il existe de nombreux [polyfills d'attribut placeholder] (https://github.com/jamesallardice/Placeholders.js) disponibles qui ajouteront du support aux navigateurs plus anciens. Cette solution est sémantiquement meilleure. –

+1

@ JA - Merci pour le lien vers votre solution basée sur javascript. – siliconrockstar

Questions connexes