2010-05-01 2 views
2

마이크로 소프트의 JScript 런타임 오류 정의되지 않은 : 나는 웹 페이지에 자바 스크립트 코드 관련이없는 무슨 생각을 추가 한 후 마이크로 소프트의 JScript 런타임 오류 : '(함수 이름)'

를 정의되지 않는다 'txtGivenName_OnFocus', 갑자기 오류를 얻고 그 브라우저가 javascript 함수를 찾을 수 없다는 것을 제안합니다.이 함수는 저에게 디자인 모드에서 평범한 것처럼 보입니다.

나는 이것이 일종의로드 순서 문제라고 생각합니다. 원래 스크립트는 페이지 하단에있었습니다. 나는 나의 위치의 SEO 순위를 돕기의 목적으로 이것을했다.

웹 페이지의 맨 위로 이동하면 오류가 사라집니다. 이제 돌아 왔습니다.

누군가가 페이지가 완전히로드 된 경우에만 일부 코드를 실행하기 위해 jQuery 솔루션을 제안 할 것이라고 생각합니다. 저는 jQuery에 대해 잘 모릅니다. 대답에 jQuery가 주어지면 VS 2010 RTM에 대해 수행해야 할 작업 (참조, 스크립트 파일 배치)을 설명하십시오.

내가 웹 페이지의 첫 번째 텍스트 상자에 포커스를 설정하고 텍스트 상자에 모든 텍스트를 미리 선택하는 것을 시도하고있다

추가 정보 :이 검사기를 사용하지 않도록 설정하면

이 문제가 사라집니다 :

<asp:CustomValidator ID="valSpecifyOccupation" runat="server" ErrorMessage="Required" 
              ClientValidationFunction="txtSpecifyOccupation_ClientValidate" 
              Display="Dynamic" Enabled="False"></asp:CustomValidator> 



function txtSpecifyOccupation_ClientValidate(source, args) { 

    var optOccupationRetired = document.getElementById("<%=optOccupationRetired.ClientID %>"); 

    if (optOccupationRetired.checked) { 
     args.IsValid = true; 
    } 
    else { 
     var txtSpecifyOccupation = document.getElementById("<%=txtSpecifyOccupation.ClientID %>"); 
     args.IsValid = ValidatorTrim(txtSpecifyOccupation.value) != ""; 
    } 

} 

답변

1

그래, 로딩 주문 문제 일 가능성이 높습니다. 그리고 ... jquery를 전적으로 추천합니다 ...

JavaScript 함수를 호출하는 곳이면 txtSpecifyOccupation_ClientValidate; 당신이로드 또는 무언가에 페이지에 스크립트 블록을 동적으로 작성할 수 있다고 가정합니다 ...

이 경우에 해당합니다. 나는

$(function() { 
... call to function 
    txtSpecifyOccupation_ClientValidate(); 
... 
    }); 

JQuery와 배울 매우 쉽습니다 ... 생성 된 스크립트 블록에 다음을 추가합니다. http://docs.jquery.com/Main_Page

관련 문제