설명 : 양식 요소 집합을 제출 문자열로 인코딩합니다. .serialize() 메서드는 표준 URL 인코딩 표기법으로 텍스트 문자열을 만듭니다.
<input>
, <textarea>
, <select>
와 같은 개별 폼 컨트롤을 선택한 jQuery 객체에서 작동 할 수 있습니다.
<form id="frm"> <select name = "single" id="single"> <option selected = "selected"> Single </ option> <option > Single2 </ option> </select> <select name = "multiple" multiple = "multiple" id="multiple> <option selected = "selected" > Multiple </ option> <option > Multiple2 </option> <option selected = "selected" > Multiple3 </ option> </select> <input type = "checkbox" name = "check" value = "check1" id = "ch1" > <label for = "ch1" > check1 </label> <input type = "checkbox" name = "check" value = "check2" checked = "checked" id = "ch2" > <label for = "ch2" > check2 </label> <input type = "radio" name = "radio" value = "radio1" checked = "checked" id = "r1" > <label for = "r1" > radio1 </label> <input type = "radio" name = "radio" value = "radio2" id = "r2"> <label for = "r2" > radio2 </label> </form>
위의 form 태그안에 <input>, <textarea>, <select> 와 같은 개별 요소들을 직렬화 합니다. 물론 개별요소들도 각각 직렬화가 가능합니다.
function TEST(){ alert($('#frm').serialize()); $.ajax({ url : '${pageContext.request.contextPath}/test/test.do', type : 'POST', dataType : 'HTML', data : $('#frm').serialize(), success : function(result) { /* TODO : */ } }) }
위의 TEST 함수처럼 ajax호출시 전송하는 data 부분에 .serialize를 사용하면 id가 frm인 form의 요소들을 직렬화 하여 전송합니다.
"single=Single&multiple=Multiple&check=ch2&radio=r1" 와 같이 스트링 형식으로 만들어 냅니다.
참고 : "성공적인 컨트롤" 만 문자열로 직렬화됩니다. 단추를 사용하여 양식을 제출하지 않았으므로 제출 단추 값이 직렬화되지 않습니다. 양식 요소의 값을 직렬화 된 문자열에 포함하려면 요소에 name
특성이 있어야합니다. 체크 박스와 라디오 버튼 ( "라디오"또는 "체크 박스"유형의 input
의 값은 체크 된 경우에만 포함됩니다. 파일 선택 요소의 데이터는 직렬화되지 않습니다.
'Programming > JQuery' 카테고리의 다른 글
jQuery에서의 Deferred와 Promise (0) | 2016.12.20 |
---|---|
jqGgrid Rowspan (0) | 2016.12.19 |
JqGrid Row Colspan 하는법 (0) | 2016.11.16 |
JqGrid Header Colspan 하는법 (0) | 2016.11.07 |
WRITTEN BY