본문 바로가기

JavaScript

[JavaScript] ReferenceError: '' is not defined 해결방법

반응형

[JavaScript] ReferenceError: '' is not defined 해결방법



01. ReferenceError: ''is not defined 에러 발생 상황

 quize.php(ReferenceError: '' is not defined 에러발생)

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>레이블을 이용한 라디오 선택영역 확장</title>
    <script type="text/JavaScript" src="http://code.jquery.com/jquery-1.7.min.js"></script>
    <script type="text/javascript">
        function onQuizeSubmit(answer) {

            if(jQuery("input[name=" + answer + "]:checked").length == 0) {

                alert("퀴즈의 정답을 선택해주시기 바랍니다.");
                return false;

            } else if(jQuery("input[name=" + answer + "]:checked").val() == 'N') {

                alert("다시 한 번 잘 생각해 보세요!!");
                return false;

            } else if(jQuery("input[name=" + answer + "]:checked").val() == 'Y') {

                alert("정답은 \"스윙화\" 입니다.");
            }
        }
    </script>
</head>
<body>
    <h2>다음중 사악미소의 신발중 가장 값이 비싼 신발은?</h2>
    <div>
        <ul>
            <li>&nbsp;&nbsp;<label><input name="quize" value="N" type="radio">&nbsp;운동화</label></li>
            <li>&nbsp;&nbsp;<label><input name="quize" value="N" type="radio">&nbsp;전투화</label></li>
            <li>&nbsp;&nbsp;<label><input name="quize" value="Y" type="radio">&nbsp;스윙화</label></li>
            <li>&nbsp;&nbsp;<label><input name="quize" value="N" type="radio">&nbsp;슬리퍼</label></li>
            <li>&nbsp;&nbsp;<label><input name="quize" value="N" type="radio">&nbsp;구두</label></li>
        </ul>
    </div>
    <input type="button" onClick="javascript:onQuizeSubmit(quize)" value="정답확인"/>
</body>
</html>



ReferenceError: '' is not defined


자바스크립트 실행중 위와같은 에러가 발생하였다.


script 태그가 제대로 실행되지 않았기 때문에 발생한 문제였는데.


필자는 스크립트 실행에 있어서 변수를 제대로 닫아주지 않았기 때문에 위와같은 에러를 만났다.



01. ReferenceError: ''is not defined 에러 해결

 quize.php(ReferenceError: '' is not defined 에러해결)

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>레이블을 이용한 라디오 선택영역 확장</title>
    <script type="text/JavaScript" src="http://code.jquery.com/jquery-1.7.min.js"></script>
    <script type="text/javascript">
        function onQuizeSubmit(answer) {

            if(jQuery("input[name=" + answer + "]:checked").length == 0) {

                alert("퀴즈의 정답을 선택해주시기 바랍니다.");
                return false;

            } else if(jQuery("input[name=" + answer + "]:checked").val() == 'N') {

                alert("다시 한 번 잘 생각해 보세요!!");
                return false;

            } else if(jQuery("input[name=" + answer + "]:checked").val() == 'Y') {

                alert("정답은 \"스윙화\" 입니다.");
            }
        }
    </script>
</head>
<body>
    <h2>다음중 사악미소의 신발중 가장 값이 비싼 신발은?</h2>
    <div>
        <ul>
            <li>&nbsp;&nbsp;<label><input name="quize" value="N" type="radio">&nbsp;운동화</label></li>
            <li>&nbsp;&nbsp;<label><input name="quize" value="N" type="radio">&nbsp;전투화</label></li>
            <li>&nbsp;&nbsp;<label><input name="quize" value="Y" type="radio">&nbsp;스윙화</label></li>
            <li>&nbsp;&nbsp;<label><input name="quize" value="N" type="radio">&nbsp;슬리퍼</label></li>
            <li>&nbsp;&nbsp;<label><input name="quize" value="N" type="radio">&nbsp;구두</label></li>
        </ul>
    </div>
    <input type="button" onClick="javascript:onQuizeSubmit('quize')" value="정답확인"/>
</body>
</html>


 변수를 확실하게 '변수'로 감싸주는 에러는 해결 될 수 있었다.






추가적으로


평소 필자는 파이어폭스의 파이어 버그(개발자 도구)를 주로 사용하는데.


위 문제는 크롬의 Developer Tools(개발자 도구)를 사용하여 손쉽게 해결 할 수 있었다.



  Fire Fox - Fire Bug


  Chorme - Developer Tools


 파이어버그는 ReferenceError: '' is not defined 변수명이 잘못되었다고만 말해주었는데 잘모르고 파일명도 동일하게 해서순간 뭘 잘못했는지 해맸는데.


 크롬을 보니까 라인까지 설명이 나와서 해결 했다.






반응형