2010-03-08 3 views

답변

29

당신은 serializeArray 기능을 살펴 수 있습니다? 그것은 당신에게 이름과 가치의 배열을 제공합니다. 당신이 원하는 경우에 당신은 객체로 그것을 돌 수 있었다하기 :

var paramObj = {}; 
$.each($('#myForm').serializeArray(), function(_, kv) { 
    paramObj[kv.name] = kv.value; 
}); 

(나는 JQuery와 배열 무엇을보고 다시 확인해야합니다, 나는 그것이 자바 스크립트 배열 값로 인코딩 생각 ,하지만 난 ' . m 100 % 확인)

편집없이 아, 그것은 배열로 다중 값 매개 변수를 설정하지 않습니다 - 당신은 동일한 이름의 반복을 얻는다. 따라서, 메이크업 AN-오브젝트 코드는 다음과 같아야합니다

var paramObj = {}; 
$.each($('#myForm').serializeArray(), function(_, kv) { 
    if (paramObj.hasOwnProperty(kv.name)) { 
    paramObj[kv.name] = $.makeArray(paramObj[kv.name]); 
    paramObj[kv.name].push(kv.value); 
    } 
    else { 
    paramObj[kv.name] = kv.value; 
    } 
}); 

(. 또는 그런 일이, 아마 조금 압착 수)

+0

이 매우 편리합니다,이 보석에 대한 감사합니다! –

76

는 "serializeArray"를 시도 해 봤나 :

+2

대안 : http://github.com/macek/jquery-serialize-object – younes0

관련 문제