2012-09-14 3 views
2

모든 양식을 양식에서 가져 와서 액세스 가능한 배열에 넣고 싶습니다. Jquery 배열에 데이터를 serialize하십시오.

var data = $("#everything").serializeArray(); 
var test = []; 
$(data).each(function(index, element) { 
    test[element] = element.val(); 
}); 

내가이 시도 :

alert(data["fname"]); 

을하지만 난 그 .each을해야 할 이유입니다, 텍스트 상자에 뭔가가 있었다하더라도 그 "정의되지 않은"반환 여기에 지금까지 가지고 무엇을 방법. 하지만 지금 내가 할 때

alert(test["fname"]); 

메시지를 팝업하지 않습니다. 아무도 내가 뭘 잘못하고 있는지 알아? 모든 양식 데이터를 ID 또는 입력 이름으로 액세스 할 수있는 배열에 저장하려고합니다.

+0

; show ... –

+0

[나를 위해 일하고있다.] (http://jsfiddle.net/EVdAw/) 코드를 게시 할 수 있습니까? 또한 입력 내용에 이름 속성이 있는지 확인하십시오. – pdoherty926

답변

4

코드에 대한 몇 가지 사항 ... 우선 test은 배열이지만 test[element]과 같은 개체로 사용하고 있습니다. 이로 인해 문제가 발생할 수 있습니다. 그런 다음 serializeArray은 객체의 배열은 생성 각 개체는 namevalue은 그래서 element.val() 없다 포함, 플러스 나는 당신이이 중 하나 $(element).val()처럼 jQuery를에 포장 또는 element.value 같은 기본 속성을 사용하여 줄 수 있도록 element는 DOM 요소입니다 확신 해요 그러나 다시, 이것은 당신에게 당신이 찾고있는 가치를 얻지 못할 것입니다. 이 시도 :

var data = $('#myform').serializeArray(); 
var obj = {}; 
for (var i = 0, l = data.length; i < l; i++) { 
    obj[data[i].name] = data[i].value; 
} 

데모 :을 console.log (데이터) 무엇을 http://jsfiddle.net/elclanrs/KRbPg/

관련 문제