본문 바로가기

Local Oriented/jQuery

jQuery serialize, 파라미터가 제대로 체크되었는지 확인하는 용도로 좋을 듯..


var obj = { width:1680, height:1050 };
var data1 = $.param(obj);                 // json 타입의 객체(리터럴)을 쿼리스트링(urlencoding)으로 만들어준다. 
console.log(data1)                           // 결과 : width=1680&height=1050

var data2 = $("form").serialize();        // form의 입력데이터를 쿼리스트링으로 만들어준다.
console.log(data2);                          // 결과 : a=1&b=2&c=3&d=4&e=5

var data3 = $('form').serializeArray(); // form의 입력데이터를 배열의 Object형태로 만들어준다.
console.log(data3);                          // 결과 [Object, Object, Object, Object, Object], [{name:'...', value:'...'}, {...}, ... }]



UTF8 을 고려하면,
$('form').serialize().replace(/%/g, '%25') 결국 이런 모습이 필요. 한글을 serialize() 한 다음 replace() 를 해 줘야 받는데서 UTF8 디코딩.
만약, 수신측이 urf8 이라면 serialize() 만으로도 충분하겠지만, 아니라면 encodeURIComponent() 가 동원되어야 함.
한글을 역시나 한도 끝도 없다는.. 애초에 웹사이트가 UTF-8 로 꾸며져 있다면 성가심이 덜하겠으나..



-------------------------------------------------------




http://api.jquery.com/serialize/

serialize 를 뭐에다 쓸까 싶었는데..
개발자가 form 에 포함되는 개체들의 체크 여부를 확인하는데 사용하면 될 듯 하네요.
form 의 mehod 를 거의 post 로 사용하는 요즘에 serialize 사용처가 불분명했었는데..
개발하면서 지금 form 문에서 체크된 사항들을 확인하는데 괞찮은 체크 툴로 보이네요.
그리고, Ajax 로 파라미터를 보낼때도 쓸만 하겠구요.
URLEncoding도 해주는데.. UTF-8 로 해주는듯..

HTTPWatch 와 같은 툴은
A.jsp 가 B.jsp 로 넘어가면서 체크되는데 비해,
serialize 를 사용하면 A.jsp 에서 먼저 확인해 볼 수 있다는 것이죠.

주의사항은..
serialize 는 input 의 submit 은 무시, 아마 button 이나 image 타입도 무시될 듯 하구요.
input 이나 select 등의 컨트롤에 name 이 명시되지 않아도 무시,
값이 들어 있지 않거나 체크되지 않아도 무시된다는 군요.