jQuery serializeArray () JSON String - PullRequest
       15

jQuery serializeArray () JSON String

1 голос
/ 29 марта 2011

Я пытаюсь сериализовать массив отправки моей формы в jQuery.Я пытаюсь получить JSON как String или Object.Также, если кто-то может сообщить мне, как выбрать только те виджеты, которые имеют значение, а не пустые, которые были бы идеальными.

Я торопился, поэтому не проверял синтаксис и прошу прощения за него.

   <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 ]

2 голосов
/ 29 марта 2011

Просто используйте:

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

Вы можете попробовать это здесь.

1 голос
/ 14 декабря 2013

Если вам не нужны повторяющиеся элементы формы с одинаковыми именами, вы можете сделать:

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

Использование подчеркивания здесь.

...