페이지 내에서 검색 기능을 구현하다가 발생한 에러
입력필드에서 엔터를 치면 검색이 가능하도록 설정한 것인데
Uncaught ReferenceError: searchEnterFn is not defined at HTML InputElement. onKeydown (post.do.229.97)
searchEnterFn가 이미 선언되어 있음에도 불구하고 not defined가 발생한다.
혹시 스크립트 최상단에 $(document).ready(function() {가 선언되어 있는가..?
그렇다면 해결 방법은 아래와 같다.
해결 방법
not defined가 발생한 함수를 document 함수 밖으로 꺼낸다.
/* EnterKey 입력 시 */
function searchEnterFn(event) {
if (event.key === "Enter") {
event.preventDefault(); // 폼 제출 방지
$("#searchButton").click(); // 버튼 클릭 이벤트 강제 실행
}
}
$(document).ready(function() {
...
});
- onKeydown 속성은 전역 스코프(global scope)에서 해당 함수 이름을 찾으려고 시도한다.
- 하지만 $(document).ready() 내부는 전역 스코프가 아니기 때문에, searchEnterFn 함수를 찾을 수 없었던 것이다.
'웹 개발 > JavaScript' 카테고리의 다른 글
jqGrid에서 rowspan 하는 방법 - cellattr, gridComplete (0) | 2025.02.25 |
---|---|
JavaScript ES6 템플릿 리터럴과 JSP에서의 사용 (0) | 2024.12.30 |