2013-08-07 3 views
1

"AjaxToolKit을 사용하지 마십시오"라는 것을 알고 있습니다 ... 그러나 나는 그것에 붙어 있다고 가정합니다.AjaxToolKit의 TextBoxWatermarkExtender에 IE를 사용하여 jQuery val을 사용

나는 다음과 같은 경우 :

<asp:TextBox runat="server" ID="textBox" /> 
<asp:TextBoxWatermarkExtender runat="server 
    TargetControlID="textBox" 
    WatermarkText="Text" /> 

그리고

var textBoxSelector = $(#'<%= textBox.ClientID %>'); 

그런 다음이 작동하지 않습니다 (즉,이 워터 마크 텍스트가 아니라 원하는 텍스트 변경이)

textBoxSelector.val('example text'); 

그러나 Chrome에서이 오류가 발견되었습니다.

textBoxSelector.focus(); 
textBoxSelector.val('example text'); 

Internet Explorer에는 없습니다.

아이디어를 구현하는 방법은 무엇입니까?

+1

$ ('<% = textBox.ClientID %>'); $ ('# <% = textBox.ClientID %>') 여야합니다. – Pete

+0

그냥 오타입니다. 업데이트 됨. –

답변

2

워터 마크 익스텐더 자체의 behaviorid를 설정하고 사용해야합니다.

<asp:TextBox runat="server" ID="textBox" /> 
<asp:TextBoxWatermarkExtender runat="server 
    TargetControlID="textBox" BehaviorID="textboxWaterMark" 
    WatermarkText="Text" /> 

다음 $find()가 null 반환하는 경우, 페이지가로드 될 때까지 기다려야 할 수도 물체와 set_Text()

var textboxWaterMark = $find("textboxWaterMark"); 
textboxWaterMark.set_Text('example text'); 

에 액세스 할 수 $find()를 사용합니다. jQuery를 사용하지 않고 툴킷을 사용합니다.

Sys.Application.add_load(MyFunction); 
function MyFunction() { 
    var textboxWaterMark = $find("textboxWaterMark"); 
    textboxWaterMark.set_Text('example text'); 
} 
+0

이것은 완벽하게 작동합니다 - 유일한 수정안은'TextBoxWatermarkExtender'에'ID'를주고 다음에'var textboxWaterMark = $ find ("<% = watermarkExtender.BehaviorID %>");' –

+0

당신은 하기 위해서. 행동 ID의 목적은 자바 스크립트를 통해 서버 태그에 액세스 할 때 서버 태그를 사용할 필요가 없기 때문입니다. 그러나 나는 놀랄 일이 아니다. 툴킷은 언제나 다소 불안해했습니다. 어느 쪽이든, 그것은 당신을 위해 일해 주어서 다행입니다. – Smeegs

+0

당신은 그렇게하지 않아도되지만, 어떤 이유로 든 (BehaviorID를) 변경하거나 (컨트롤을 삭제하면) ID가 업데이트되거나 이에 따라 발생하는 오류를 의미합니다. –

관련 문제