2011-03-29 5 views
1

jQuery에서 양식 제출을 serializeArray하려고합니다. JSON을 얻으려고합니다. String 또는 Object. 또한 누군가가 내게 내가 완벽한 위젯이 아닌 빈 위젯보다 위젯을 선택하는 방법을 알려줄 수 있다면.jQuery serializeArray() JSON String

나는 급하게 따라서 구문을 확인하지 못했고 그것에 대해 사과드립니다.

<html> 
    <head> 
    <script type="text/javascript"> 

    $(document.ready(function(){ 
     $("#myform").submit(function(){ 

      var mySerialObj = $("#myform").serializeArray(); 

      $.each(mySerialObj,function(indx,idxVal){ 
       //here indx is numeric and idxVal is a String like 
       // [{{"name","name"},{"value","RED"}}] 

        $.each(JSON.parse(idxVal),function(i,v){ 

          //here I am not able to get the thinggy into a 
          // JSON format something like ['name','RED'] 
         }); 
}); 

}); 


}); 


    </script> 
    </head> 
    <body> 

    <form id="myform"> 
    <div> 
    <span>What color do you prefer?</span><br /> 
    <input type="radio" name="colors" id="red" />Red<br /> 
    <input type="radio" name="colors" id="blue" />Blue<br /> 
    <input type="radio" name="colors" id="green" />Green 
    </div> 

    <div> 
    <select> 
     <option value="volvo">Volvo</option> 
     <option value="saab">Saab</option> 
     <option value="mercedes">Mercedes</option> 
     <option value="audi">Audi</option> 
    </select> 
    </div> 

    </form> 

    <button type="submit" value="submit" id="sbmt"">submit</button> 


    </body> 
    </html> 

답변

2

그냥 사용 : 이름이 같은 반복적 인 양식 요소에 대해 상관하지 않는 경우

$("#myform").serialize(); 

You can try it here.

+0

카림 : 빠른 응답에 감사드립니다. .serialize는 queryString처럼 나를 줄 것인가? like color = RED & car = "VOLVO". 그래서이 객체를 JSON 객체로 객체화 한 다음 각각을 반복 처리해야합니까? 또한 빈 값을 검사 할 때 : inpu [값] 라디오 버튼, 선택 상자 등 위젯의 모든 유형을 확인 하시겠습니까? 아니면 단지 텍스트 상자를 선택합니까? – sv1

+0

@ sv1 - 예, 쿼리 문자열을 받게됩니다. 두 번째 예제가 선택한 옵션의 값을 선택하지 않는다는 것을 깨달았습니다. 나는 편집 중이다. – karim79

+0

OK .. 선택 상자도 선택되지만 "name"attr은 선택으로 선언해야하는 다른 질문에서 읽습니다. – sv1

1

은, 당신은 할 수 있습니다 :

var data = $("#myform").serializeArray(); 
var formData = _.object(_.pluck(data, 'name'), _.pluck(data, 'value')); 

underscore 사용 이리.

+0

우리가 파일을 처리 할 필요가 없을 때 가장 멋진 방법입니다. –