2012-11-13 43 views
-1

我有一個asp頁面,我有頂部的過濾器文本框。這3個文本框在其中顯示文本(說什麼進入)。當文本框獲得焦點時,我已經添加了代碼以選擇所有文本,但是現在我需要在某種意義上在控件失去焦點時做相反的操作。此處的目標是使文本框過濾器始終以默認文本填充,除了用戶輸入有效的過濾器值時。如何重置webcontrol.textbox.text一旦失去焦點?

基本上

如果control.text =的String.Empty和control.lostfocus然後 組文本回「默認」 結束時,如果

到目前爲止,我已經在頁面加載此代碼...

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 

註釋掉了3行是我的嘗試,但我相信他們是在控制上被還原的屬性之間的問題。我是一個JavaScript的noobie,所以不知道到底發生了什麼。任何想法如何我可以得到這個簡單的邏輯工作?

回答

0

這將是沿着此線的東西:

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

我加入了代碼和它沒有打破所以那是一個很好的事情,但它無法取代默認文本的空白文本框。該文本框不做回發,所以我會設置該屬性,並看到:) – user1732364

+0

它回來但未能設置默認文本。我寧願不做回發,並且無論如何都要這樣做客戶端。思考? – user1732364

+0

我會找到實際的javascript屬性並更改答案。在那裏,正確的屬性是.value。 –

0
you can use jquery: 

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