2012-11-13 2 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

내가의 코드를 추가하고 그렇게 좋은 일 이잖아 휴식 didnt는하지만 기본 텍스트와 빈 텍스트 상자를 교체하지 못했습니다. 텍스트 상자는 포스트 백을하지 않기 때문에 그 속성을 설정하고 볼 것입니다 :) – user1732364

+0

그것은 다시 게시되었지만 기본 텍스트를 설정하지 못했습니다. 차라리 포스트 백을하지 말고 클라이언트 측에 어쨌든 할 수 있습니다. 생각? – user1732364

+0

나는 실제 javascript 속성을 찾고 대답을 바꿀 것이다. 올바른 특성은 .value입니다. –

0
you can use jquery: 

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