2010-11-26 9 views
2

J'ai reçu cette zone de texte avec la valeur par défaut "Prénom". Maintenant, lorsque je clique dans cette zone de texte pour entrer le nom, cette valeur "Prénom" continue à s'afficher. Qu'est-ce que je veux est à la zone de texte pour effacer dès que je clique à l'intérieur. Quelle propriété dois-je définir dans la balise textbox mt?Suppression du texte par défaut de la zone de texte

[Editer] ok quoi que ce soit de Telerik que je peux utiliser pour faire ça?

+0

est-ce le contrôle d'asp ou html? –

+0

Mis à jour ma réponse avec des informations sur Telerik – Josh

Répondre

6

Il n'y a pas de fonctionnalité de boîte dans TextBox qui accomplira ceci, mais le ASP.Net Ajax Toolkit a un Watermark Extender qui fera tout ce que vous voulez.

Je l'ai utilisé à la fois, mais maintenant utiliser personnellement jQuery Watermark Plugin

Ou fonctionnera très bien, choisir en fonction de vos besoins. Selon les documents Telerik, il suffit de définir la propriété EmptyMessage sur leur contrôle TextBox. Demo Page Here

+0

thnx..yeah Je l'ai fait de cette façon seulement .. ne vous aimez pas telerik? Je sais que je fais: D – Serenity

1

Peut être this vous aidera

2

Dans le code sous-jacent, sur chargement de la page, vous pouvez ajouter le code suivant pour atteindre cet

TextBox1.Attributes.Add("onClick", "javascript:if(this.value=='First Name'){this.value='';}"); 
+0

j'étais dans une discussion pour donner l'exemple :(. – anishMarokey

+1

utiliser onFocus inplace de onClick car il peut être concentré par touche TAB –

2

Vous pouvez utiliser la méthode proposée par @Josh. Si vous ne souhaitez pas utiliser les contrôles Ajax Toolkit ou JQuery, vous pouvez l'écrire vous-même en utilisant Javascript. Ecrire une fonction qui est appelée lorsque le foucs est reçu par le contrôle de la zone de texte. Je pense que la fonction est appelée onfocus ou juste se concentrer sur Javascript.

2

Salut, je viens d'écrire cette petite fonction qui permettra d'atteindre le résultat souhaité

function clearInputBox(x,prefil){ 
    if(x.value == prefil){ 
     x.value = ''; 
    } 
} 

Votre boîte d'entrée ressemble à ceci

<input type='text' value='First Name' onfocus="clearInputBox(this,'First Name')" /> 
0

Prendre Shobans conseils un peu plus loin, vous pouvez ajouter quelque chose comme ça à votre Sous-classe Page

protected override void OnInitComplete(EventArgs e) 
{ 
    string jsString = "javascript:if(this.value=='" + TextBox1.Text + "'){this.value='';}"; 
    TextBox1.Attributes.Add("onFocus", jsString); 
    base.OnInitComplete(e); 
} 

Ce que cela va faire, c'est toujours co nsider que la chaîne par défaut est celle que ce contrôleur contient à l'heure esign (l'initiale dans votre fichier .aspx), donc vous ne devrez pas le changer manuellement dans le codebehind chaque fois que vous changez votre .aspx. N'oubliez pas que OnIinitComplete se déclenche avant l'application des données viewstate ou postback, mais après que les contrôles de votre page ont été définis sur leurs valeurs par défaut.

P.S. Comme anishMarokey pointé, utilisez onFocus vs onClick, puisque les champs peuvent gagner le focus sans clics via la touche Tab.

Questions connexes