2015-09-21
우선 예제부터 보자
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>

<form name='fm' id="fm">
<input type=hidden name='haha' value='haha'>
<input type=hidden name='bbb' value='bbb'>
<input type=hidden name='ccc' value='ccc'>
<input type=hidden name='ddd' value='eee'>
<input type=hidden name='aaa' value='bbb'>
<input type="radio" name="rara" value='rara'>
<input type="radio" name="rara" value='2' checked>

<input type="checkbox" name="chk1" value='rara' checked>
<input type="checkbox" name="chk2" value='2'>
</form>

<script>
var data = '';
$.each( $('#fm').serializeArray(), function(key, val){
    data += ","+val['name']+":"+val['value'];
});
console.log( data.substr(1) );
</script>
haha:haha,bbb:bbb,ccc:ccc,ddd:eee,aaa:bbb,rara:2,chk1:rara

해당 폼을 submit 했을경우 넘어가는 데이터를 전부 알아내서 ajax로 따로 보내거나 할때 이런식으로 하면 편리하다.


//---------------- 2015.09.22 추가
해당 폼 데이터를 JSON 방식으로도 넘길 필요가 생길 것이다.
이럴때는 위의 함수를 아래처럼 수정 하면 된다.
<script>
var data = '';
$.each( $('#fm').serializeArray(), function(key, val){
 data += ',"'+val['name']+'":"'+val['value']+'"';
});
data = '{'+ data.substr(1) +'}';

console.log( JSON.parse(data) );
</script>
Object {haha: "haha", bbb: "bbb", ccc: "ccc", ddd: "eee", aaa: "bbb"…}
{AA:BB}형식의 JSON 방식으로 변환 시켜 주는 것이다.
여기서 주의할점은 JSON.parse() 함수 내부의 문자열은 "AA":"BB" 형식으로 쌍 따옴표로 감싸주어야 한다는 점이다.
홑따옴표로 감싸주게 될 경우에는 오류가 뜰 것이다..