JSP&JavaScript&HTML
[jQuery] serializeObject
헤르메스의날개
2020. 11. 20. 02:07
728x90
참고 : https://hermeslog.tistory.com/365 [헤르메스 LIFE]
jquery 에서 form serialize를 이용하여 json 을 만들수 있습니다.
먼저 serialize 에 대해서 간단히 설명하겠습니다.
serialize 함수는 2개가 있습니다.
첫번째로 serialize() 입니다.
URL-encoded 표기법으로 form 의 객체들을 텍스트화 하고 그 결과를 return 합니다.
형식은 inputName=inputValue&inputName2=inputValue2 입니다.
두번쨰로 serializeArray() 입니다.
Json 문자열 형태의 배열을 return 합니다.
형식은 [{name:"name",valeu:"valeu"},{name:"name2",value:"value2"}] 입니다.
지금 만들 형식은 { inputName:"inputVlaue", inputName2:"inputValue2" } 와 같은 Json 형태입니다.
var ajaxRequest;
(function( $, window ){
$.fn.serializeObject = function() {
var obj = null;
try {
// this[0].tagName이 form tag일 경우
if(this[0].tagName && this[0].tagName.toUpperCase() == "FORM" ) {
var arr = this.serializeArray();
if(arr){
obj = {};
jQuery.each(arr, function() {
// obj의 key값은 arr의 name, obj의 value는 value값
obj[this.name] = this.value;
});
}
}
} catch(e) {
alert(e.message);
} finally {}
return obj;
};
})( jQuery, window );
/**
* jqGrid
* desc : form의 데이터를 json 형태로 변환해 준다.
* return : 성공시에는 객체((JSON)을 리턴한다. 실패시에는 null을 리턴한다.
*/
jQuery.fn.serializeObject = function() {
var obj = null;
try {
if ( this[0].tagName && this[0].tagName.toUpperCase() == "FORM" ) {
var arr = this.serializeArray();
if ( arr ) {
obj = {};
jQuery.each(arr, function() {
obj[this.name] = this.value;
});
}//if ( arr ) {
}
}
catch(e) {alert(e.message);}
finally {}
return obj;
};
/**
* Page Onload
* window.load() 보다 더 빠르게 실행
*/
$(document).ready(function() {
var conditions = $('#searchForm').serializeObject();
alert(conditions);
});
-----------------------------------------------------------------------------------------------
Json으로 생성된 객체를 String으로 보여주는 객체.
alert((JSON.stringify(JsonUtil.serializeForm()));
var JsonUtil = {
/**
* 해당 form 의 element 를 map 데이터로 구성하여 리턴
* @param formName : 데이터를 구성할 form name
* @return
*/
serializeForm : function (formName)
{
return $( "form[name='"+formName+"']" ).serializeObject();
}
};
728x90