입니다. 그것들의 그룹은 모두 같은 이름 속성을 가지기 때문에, 객체 내부에 배열 값을 생성해야합니다. 같은 HTML에 대한 그래서 :
<input type="checkbox" value="1" name="the-checkbox">
<input type="checkbox" value="1" name="the-checkbox">
<input type="checkbox" value="1" name="the-checkbox">
당신은 얻을 것이다 : 코드의
{the-checkbox:['1', '2', '3']}
This 비트가 잘 모든 것을 처리합니다.
/*!
* jQuery serializeObject - v0.2 - 1/20/2010
* http://benalman.com/projects/jquery-misc-plugins/
*
* Copyright (c) 2010 "Cowboy" Ben Alman
* Dual licensed under the MIT and GPL licenses.
* http://benalman.com/about/license/
*/
// Whereas .serializeArray() serializes a form into an array, .serializeObject()
// serializes a form into an (arguably more useful) object.
(function($,undefined){
'$:nomunge'; // Used by YUI compressor.
$.fn.serializeObject = function(){
var obj = {};
$.each(this.serializeArray(), function(i,o){
var n = o.name,
v = o.value;
obj[n] = obj[n] === undefined ? v
: $.isArray(obj[n]) ? obj[n].concat(v)
: [ obj[n], v ];
});
return obj;
};
})(jQuery);
사용 여기
$(form).serializeObject();
모두 동일한 이름 속성이 당신이 체크 박스 나 라디오 버튼이있는 양식이있는 경우이 방법은 작동하지 않습니다 양식에게 ID를 부여합니다. 그 (조건 집합의 무리 및 수동으로 배열을 만드는 이외의) 처리에 대한 아이디어? – Hollister
'SyntaxError : illegal character' – zygimantus
@zygimantus'serializeArray()'와'}'뒤에'$ ('form')'의 앞뒤에 불법 (인쇄가 아닌) 문자가 있습니다. 나는 그들을 편집했다. – 0b10011