2012-11-13 1 views
-1

J'ai une page ASP et j'ai des zones de texte de filtre en haut. Ces 3 zones de texte restituent du texte (en disant quoi entrer). J'ai déjà ajouté du code pour sélectionner tout le texte quand la zone de texte gagne en focus mais maintenant je dois faire exactement le contraire quand le contrôle perd le focus. L'objectif ici est de faire en sorte que les filtres de la zone de texte soient remplis à tout moment avec le texte par défaut, sauf si l'utilisateur a entré une valeur de filtre valide.Comment réinitialiser webcontrol.textbox.text une fois qu'il perd le focus?

Fondamentalement

si le control.text = String.Empty et control.lostfocus puis texte remis à "défaut" fin si

Jusqu'à présent, j'ai ce code à la charge de la page ...

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    If Not IsPostBack Then 
     txtAcctFilter.Attributes.Add("onFocus", "JavaScript:this.select();") 
     txtMonthFilter.Attributes.Add("onFocus", "JavaScript:this.select();") 
     txtYearFilter.Attributes.Add("onFocus", "JavaScript:this.select();") 
     'txtAcctFilter.Attributes.Add("onBlur",) 
     'txtMonthFilter.Attributes.Add("onBlur", txtMonthFilter.Text = "Enter Month") 
     'txtYearFilter.Attributes.Add("onBlur", txtYearFilter.Text = "Enter Year") 
     Populate() 
    End If 
End Sub 

les 3 lignes commentées sont mes tentatives mais je crois que leur est un problème entre les propriétés étant revenue sur le contrôle. Je suis un Noobie à javascript, donc je ne sais pas exactement ce qui se passe là-bas. Des idées de comment je peux obtenir cette logique simple à travailler?

Répondre

0

Ce serait quelque chose le long des lignes de celle-ci:

txtMonthFilter.Attributes.Add("onBlur", "javascript: if (this.value == """") {this.value = ""Enter Month""}") 
+0

j'ai ajouté le code et il na pas casser donc ce une bonne chose, mais il n'a pas de remplacer la zone de texte vide avec le texte par défaut. La zone de texte ne fait pas une publication, donc je vais définir cette propriété et voir :) – user1732364

+0

Il a posté, mais n'a pas pu définir le texte par défaut. Je préfère ne pas faire de postback et avoir ce côté client de toute façon. Pensées? – user1732364

+0

Je vais trouver la propriété javascript actuelle et changer la réponse. Là, la propriété correcte est .value. –

0
you can use jquery: 

$('input[id$="txtMonthFilter"]').blur(function() { 
    if ($(this).val() == '') $(this).val('Enter Month'); 
}); 
Questions connexes