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?
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>
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.
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>
Essaie:
<input name="mytextbox" onfocus="if (this.value=='Please describe why') this.value = ''" type="text" value="Please Describe why">
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>
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>
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
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>
<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>
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>
l'attribut jQuery val () devrait faire l'affaire.
Vous pouvez le faire $('#YourTextareaID').click(function(e) { e.target.value = ''; })
.
<textarea onClick="javascript: this.value='';">Please describe why</textarea>