Comment effacer textarea sur click?

compte tenu d'un <textarea> avec une valeur par défaut comme suit:

<textarea>Please describe why</textarea>

comment effacer la valeur par défaut lorsque l'utilisateur clique pour éditer le champ?

38
demandé sur Dolph 2010-05-06 22:49:50

12 réponses

Votre JavaScript:

function clearContents(element) {
  element.value = '';
}

et votre HTML:

<textarea onfocus="clearContents(this);">Please describe why</textarea>

je suppose que vous voudrez rendre cela un peu plus robuste, de façon à ne pas effacer les entrées utilisateur lors de la mise au point une deuxième fois. Icicinqlié discussions& articles.

Et voici le (beaucoup mieux) idée que David Dorward mentionne dans les commentaires ci-dessus:

<label for="explanation">Please describe why</label>
<textarea name="explanation" id="explanation"></textarea>
44
répondu Dolph 2010-05-06 20:42:14

Vous pouvez utiliser l'attribut placeholder introduit dans HTML5:

<textarea placeholder="Please describe why"></textarea>

cela placera votre texte de remplissage en gris qui disparaîtra automatiquement lorsqu'un utilisateur clique sur le champ de texte. De plus, il réapparaîtra s'il perd la mise au point et si la zone de texte est vide.

36
répondu Gigazelle 2018-08-07 22:36:47
function yourFunction(){
     document.getElementById('yourid').value = "";
};

Ceci est le fichier html:

    <textarea id="yourid" >
    Your text inside the textarea
    </textarea>
    <button onClick="yourFunction();">
     Your button Name
     </button>
7
répondu emcee22 2013-01-16 12:41:34

Essaie:

<input name="mytextbox" onfocus="if (this.value=='Please describe why') this.value = ''" type="text" value="Please Describe why">
5
répondu Paul Kearney - pk 2010-05-06 18:54:17

vous vouliez dire comme ça pour textfield?

<input type="text" onblur="if(this.value == '') this.value='SEARCH';" onfocus="if(this.value == 'SEARCH') this.value='';" size="15" value="SEARCH" name="xSearch" id="xSearch">
<textarea id="usermsg" rows="2" cols="70" onfocus="if(this.value == 'enter your text here') this.value='';" onblur="if(this.value == '') this.value='enter your text here';" >enter your text here</textarea>
4
répondu tildy 2011-07-22 10:50:55

La meilleure solution ce que je sais pour l'instant:



<textarea name="message" onblur="if (this.value == '') {this.value = 'text here';}"   onfocus="if (this.value == 'text here') {this.value = '';}">text here</textarea>
0
répondu nmsdvid 2011-12-12 22:46:56

essayez le lien ci-dessous vers une page que j'ai trouvée. Cela semble une très bonne solution au problème et ne nettoie pas le texte si l'utilisateur entre des données et tape à nouveau la boîte.

http://www.yourhtmlsource.com/forms/clearingdefaulttext.html

0
répondu Dcdanny 2014-01-30 22:53:21

Voici une solution si vous avez des données dynamiques en provenance d'une base de données...

La variable "données" représente les données de la base de données.

S'il n'y a pas encore de données sauvegardées, le paramètre affichera à la place.

Une fois que l'utilisateur commence à taper, le placeholder disparaîtra et ils pourront alors entrer du texte.



Espérons que cela aide quelqu'un!

// If data is NOT saved in the database
if (data == "") {
    var desc_text = "";
    var placeholder = "Please describe why";
// If data IS saved in the database
} else {
    var desc_text = data;
    var placeholder = "";
}

<textarea placeholder="'+placeholder+'">'+desc_text+'</textarea>
0
répondu Matt 2018-06-08 13:19:29
<textarea name="post" id="post" onclick="if(this.value == 'Write Something here..............') this.value='';" onblur="if(this.value == '') this.value='Write Something here..............';" >Write Something here..............</textarea>
-1
répondu Heart 2012-05-05 16:17:55

Vous pouvez essayer ce code,

<textarea name="textarea" cols="70" rows="2" class="searchBox" id="textarea" onfocus="if(this.value == 'Please describe why') this.value='';" onblur="if(this.value == '') this.value='Please describe why';">Please describe why</textarea>
-1
répondu user2967131 2015-01-03 10:56:18

l'attribut jQuery val () devrait faire l'affaire. Vous pouvez le faire $('#YourTextareaID').click(function(e) { e.target.value = ''; }).

-1
répondu Milli 2015-07-06 19:37:37
<textarea onClick="javascript: this.value='';">Please describe why</textarea>
-2
répondu user318747 2010-05-06 18:53:02