폼 이벤트 타입 및 문서로딩
폼과 관련된 이벤트 타입과 문서로딩에 대해 알아봅니다.
submit
submit
은 폼의 정보를 서버로 전송하는 명령인 submit 시에 발생합니다.
form
태그에 적용됩니다.
아래 예제는 전송 전에 텍스트 필드에 값이 입력 되었는지를 확인하고, 만약 값이 입력되지 않았다면 전송을 중단합니다.
change
change
는 폼 컨트롤의 값이 변경 되었을 때 발생하는 이벤트입니다.
input(text,radio,checkbox), textarea, select 태그에 적용됩니다.
blur, focus
focus는 엘리먼트에 포커스가 생겼을 때, blur은 포커스가 사라졌을 때 발생하는 이벤트입니다.
다음의 태그를 제외한 모든 태그에서 발생합니다.
<base>, <bdo>, <br>, <head>, <html>, <iframe>, <meta>, <param>, <script>, <style>, <title>
load, DOMContentLoaded - 문서로딩
웹페이지를 프로그래밍적으로 제어하기 위해서는 웹페이지의 모든 요소에 대한 처리가 끝나야 합니다.
이것을 알려주는 이벤트가 load
, DOMContentLoaded
입니다.
아래 코드의 실행결과는 null 입니다.
<p id="target">Hello</p>
가 로딩되기 전에 자바스크립트가 실행되었기 때문입니다.
이를 해결하기 위한 방법은 아래와 같이 스크립트를 문서 끝에 위치시켜서 순차적으로 실행하는 방법이 있습니다.
또 다른 방법은 load
이벤트를 이용하는 것입니다.
그런데 load 이벤트는 문서내의 모든 리소스(이미지, 스크립트)의 다운로드가 끝난 후에 실행되게 됩니다.
이는 에플리케이션의 구동이 너무 지연되는 부작용을 초래할 수 있는 여지가 많습니다.
DOMContentLoaded
는 문서에서 스크립트 작업을 할 수 있을 때 실행되기 때문에 이미지 다운로드를 기다릴 필요가 없는 장점이 있습니다.
DOMContentLoaded
이벤트는 IE9
을 포함한 모든 브라우저에서 지원하고 있다.