요소의 비활성 readonly, disabled 차이와 사용법
보통 웹 페이지에서 어느 특정 요소를 비활성화 처리할 때 사용하는 것이 reaonly 와 disabled 이다.
(readonly는 text요소, 나머지 요소는 disabled 사용)
하지만 이 둘은 차이점이 있다.
가장 큰 차이점은 DOM 객체에서 읽을 수 있느냐 없느냐 이다.
쉽게 말하면 readonly의 경우 객체의 쓰기를 비활성화 한다. (객체는 읽음)
하지만 disabled 된 요소는 DOM 객체를 아예 읽지 않는다.
그리하여 <form> 태그로 해당 값을 서블릿으로 넘길 때
readonly된 값은 읽어가지만 disabled된 값은 읽지 않는다. 그래서 disabled된 데이터가 넘어가지 않는 것이다.
(폼을 submit하든 폼의 데이터를 serialize() 해서 넘기든 disabled된 값은 넘거가지 않는다.)
그럼 disabled 된 요소의 값을 서블릿으로 전달하는 방법은 무엇일까?
간단히 2가지 방법이 있다.
첫번째는 hidden 으로 해당 값을 전달하는 방법.
disabled된 요소의 값을 hidden된 input요소의 value 에 넣어 전달.
두번째는 submit이나 serialize 하기 전에 해당 요소의 disabled 속성을 제거했다가 전송 후 다시 disabled 하는 방법이 있다.
ex)
$("#id").attr("disabled", false); //해당 요소의 disabled 속성 변경(false)
var dataParam = $("#searchForm").serialize(); //데이터 serialize
$("#id").attr("disabled", true); //해당 요소의 disabled 속성 변경(true)
이렇게 하면 disabled 된 요소가 서블릿으로 전달 된다.
'Programing > JavaScript' 카테고리의 다른 글
정규식 사용 textarea url 자동 하이퍼링크 (0) | 2017.03.21 |
---|---|
Javascript 로컬 파일 실행, 윈도우 프로그램 실행하기 ActiveXObject (2) | 2017.03.15 |
자바스크립트 유용한 달력 라이브러리 full calendar 사용법 한글 옵션 적용 (6) | 2016.06.07 |
javascript 자바스크립트 배열의 중복값 제거하는 여러가지 방법 (0) | 2016.06.03 |
자바스크립트 javascript String 기본함수 에러 해결법 toString(), substring(), substr() 에러 해결방법 (0) | 2016.05.09 |
댓글