나는 내 하루 종일이 문제를 겪어 왔고 모든 포럼/페이지에 거의 모든 게시물을 보았고 해결책을 찾지 못했습니다. 내 문제에. 나는 나의 설명에서 가능한 한 짧고 정확한 것을하려고 노력할 것이다.자바 스크립트에서 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";
}
왜 ID를 출력하기 위해 서버 측 코드를 사용하고 있습니까? 서버 측 스크립트가 텍스트 상자 ID를 변경합니까? 또는 ID가 고정되어 있습니까? 네가 대답하면 내가 너를 도울 수있어. – Marvin