2014-01-24 3 views
-1

이 코드는 aspx 파일에 있습니다.ASP.NET webforms 다른 ID의

<form runat="server"> 

복잡하지 않아야합니다. 그러나 그것은 밝혀졌습니다.

<form id="aspnetForm" ....> 

그러나 생산에가로 바뀝니다 : 내 전임자에

<form id="ctl00" .... > 

큰 감사 JS는 "aspnetForm"ID에 푹되어 많은, 그리고 그것의 내 컴퓨터 및 테스트에 는로 변환 환경 제대로 작동하지 않습니다.
이 ID 생성 차이는 어디에서 유래합니까?

P. 그 해결책 중 하나는 JS 쿼리를 다시 작성하거나 폼에 클래스 태그를 넣고 쿼리하는 것입니다. 메신저 아직도 관심이 있지만 왜 이런 일이 일어납니다.

+0

D 이드는 심지어 질문을 읽었습니까? 나는 왜 ** id **가 다른 환경에서 다르게 생성 될 수 있는지를 묻고있다. 왜

id 태그가 오버라이드되어 있지 않은지, 필자의 경우에는 이해가되지 않는다. 왜냐하면 시작하는 태그가 없기 때문이다. – lew

+0

예, 귀하의 질문을 읽었습니까? 제가 링크 된 제목과 제목을 읽었습니까? 모든 ASP.NET WebForms 페이지에 대해 ''태그가 생성됩니다. 이 태그가 생성 된 이름을 얻는 여러 가지 상황이 있으며 여기에 설명되어 있습니다 : _ "** 명명 컨테이너가 현재 페이지와 다른 경우 ** [...] UniqueID 속성은"aspnetForm "을 반환합니다.이 속성은 다음과 같습니다. form 태그로 클라이언트에게 전송되는 name 속성으로 렌더링됩니다. 그래서 정말로 필요한 경우 htmlform을 상속하여 자신 만의 양식을 만든 다음 UniqueID 속성이나 Name 속성 "_을 재정의 할 수 있습니다. – CodeCaster

+0

또한 동일한 코드가 테스트 환경과 프로덕션 환경에서 다르게 작동하면 테스트 환경이 프로덕션 구성과 일치하지 않을 가능성이 높습니다. – CodeCaster

답변

-1

시작 EDIT 서버에서 사용자의 PC 및 테스트 환경과 어떤에서 사용되는 닷넷 프레임 워크의 버전

? - 이것은 왜 그것이 일어나고 있는지에 대한 대답의 정확성에 엄청난 영향을 미칠 것입니다 - 특히 약간 다른 경우. 페이지에 단 하나의 양식 만 있습니까?

최종 편집

다음과 같은 자바 스크립트 사용 양식 이름을 얻으려면 :

<script> 
    theForms = document.getElementsByTagName("form"); 

    for(i=0;i<theForms.length;i++) 
     alert(theForms[i].name); 
</script> 

경우, 프로그래머 하나 개의 형태 : 당신은 사용하여 변경을 중지 할 수 있습니다

<script> 
    theForms = document.getElementsByTagName("form"); 

    alert(theForms[0].name); 
</script> 
+0

그는 어떻게하는지 묻지 않습니다. 그는 왜 그것이 일어나고 있는지 묻고 있습니까? –

0

ClientIdMode to Static

+1

그는 어떻게하는지 묻지 않습니다. 그는 왜 그것이 일어나고 있는지 묻고 있습니까? –

+0

이 게시물은 OP가 인식하고 있다고 선언 한 것과 다른 해결책, 즉 자바 스크립트 전용 솔루션을 제공하므로 잠재적으로 도움이됩니다. http://stackoverflow.com/questions/how-to-answer를 참조하십시오. –