2012-11-28 5 views
1

나는 내 하루 종일이 문제를 겪어 왔고 모든 포럼/페이지에 거의 모든 게시물을 보았고 해결책을 찾지 못했습니다. 내 문제에. 나는 나의 설명에서 가능한 한 짧고 정확한 것을하려고 노력할 것이다.자바 스크립트에서 gridview 안에있는 텍스트 상자의 클라이언트 ID를 얻는 방법

내가 원하는 것은 간단합니다. txtBox1에 입력 된 숫자를 txtBox2에 동적으로 복사하고 싶습니다. 이 두 txtBox는 모두 GridView 내부에있는 TemplateField 안에있는 Table 안에 있습니다. txtBox1은 onkeydown 이벤트를 사용하여 JavaScript numericOnly 함수를 호출합니다. 사용자가 numericOnly 함수가 발생하는 숫자를 입력하고 return true 절 전에 txtBox1에 입력 된 숫자에서 txtBox2로 동적 복사를 수행해야하는 다른 JavaScript 함수를 호출합니다. 여기

문제는 내가

document.getElementById('<%= txtDeathPremiumDifference.ClientID %>'); 

를 사용하려고 할 때마다 페이지가 "The name txtDeathPremiumDifference does not exist in the current context" 오류가 발생한다는 것입니다. 내가 주장해야한다

, 나는 내가 인터넷에조차이 샘을 한 모든 시도했다 :

document.getElementById(''<%# ((GridViewRow)Container') 
     .FindControl("txtDeathPremiumDifference").ClientID %>'') 
     .value="Hi"; 

하지만 아무 일 없다.

결론 내 텍스트 상자의 값에 액세스 할 수 있어야 보유하고있는 내용을 수정할 수 있습니다. JS 기능

TextBox ID="txtDeathBankPremium" runat="server" CssClass="TexboxInput" 
    MaxLength="17" Width="122px" onkeydown="return isNumericKey(event);" 

과 여기 :

은 실제로 그렇게라고하지 "txtBox1"하지만 당신은 아이디어를 얻을

function isNumericKey(e) 
     { 
      var charInp = window.event.keyCode; 
      if (charInp > 31 && (charInp < 48 || charInp > 57)) 
      { 
       return false; 
      } 
      ComputePremiumDifference(charInp); 
      return true; 
     } 

     function ComputePremiumDifference(input) { 
      document.getElementById('<%= txtDeathPremiumDifference.ClientID %>') 
        .value="Hi"; 
     } 
+0

왜 ID를 출력하기 위해 서버 측 코드를 사용하고 있습니까? 서버 측 스크립트가 텍스트 상자 ID를 변경합니까? 또는 ID가 고정되어 있습니까? 네가 대답하면 내가 너를 도울 수있어. – Marvin

답변

0

사용 "<% = txtDeathPremiumDifference.UniqueID %> "당신의 js 함수에서. 희망이 있습니다.

+0

답장을 보내 주셔서 감사합니다. 그래도 작동하지 않습니다. 같은 오류가 발생했습니다 : CS0103 : 'txtDeathPremiumDifference'라는 이름이 현재 컨텍스트에 존재하지 않습니다. – user1861164

+0

볼 수 있습니다. runnat = "server"& ID가 모두 정확하다면 정말 이상합니다. – ocean4dream

관련 문제