2008-12-05 1 views
1

자바 스크립트 함수에 ClientID를 작은 따옴표없이 매개 변수로 전달하면 컨트롤 자체에 대한 참조로 전달되어 getElementByID를 먼저 호출하지 않고도 사용할 수 있습니다.JavaScript 함수에 ClientID를 전달하면 전체 컨트롤이 전달되는 이유는 무엇입니까?

어디서나이 동작을 발견 할 수 없으며, 브라우저 특정 사항 또는 .net 문제일까요?

나는 ... 코드 숨김이 같은 전화를 설정하고

protected void Page_Load(object sender, EventArgs e) 
     { 
      Button1.Attributes.Add("onClick", string.Format("showvalue({0})", TextBox1.ClientID)); 
     } 

내 관심사는이 IE의 이전 버전에서 작동하지 않을 수 있다는 것이다. 감사합니다. .

+0

실제로 생성 된 HTML을 보았습니까? 나는이 동작이 소스 코드를 보자 마자 그 모든 신비로움이라고 생각하지 않는다. – Tomalak

+0

고마워, 나는 그것이 신비했다는 것을 생각하지 않았다. 나는 그것이 일반적으로 행해지는 방식이 아니라는 것을 알고 있었기 때문에 크로스 브라우저 지원 등등에 관심이 있었다. –

답변

4

귀하의 ID 값 주위에 따옴표를 추가 일반적으로 컨트롤이 렌더링 된 DOM 요소 인 ClientID 이름을 사용하여 전역 변수의 인스턴스를 가져옵니다.

0

작은 따옴표로 전달하고 모든 브라우저에서 작동하는 getElementByID를 사용하면 "정상적인"방법입니다.

왜이 방법이 효과가 있을지 모르겠습니다. Firefox에서도 작동합니까? 및 String.format ("showvalue (' {0} ')", TextBox1.ClientID) 따옴표없이

, showValue : 당신은 JS 코드 예를 생성 할 때