jQuery SerializeArray() JSON 字符串

发布于 2024-10-27 10:08:06 字数 1627 浏览 0 评论 0原文

我正在尝试在 jQuery 中序列化我的表单提交。我正在尝试获取类似的 JSON 字符串或对象。另外,如果有人能让我知道如何只选择那些有值的小部件而不是空的小部件,那就完美了。

我很匆忙,因此没有检查语法,对此我深表歉意。

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

I am trying to serializeArray my form submission in jQuery. I am trying to get a JSON like
String or Object. Also if someone can let me know how to pick only those widgets which have a value rather than empty ones that would be perfect.

I was in a hurry hence didnt check the syntax and I apologize for it.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

自此以后,行同陌路 2024-11-03 10:08:06

只需使用:

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

您可以在这里尝试。

Just use:

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

You can try it here.

最初的梦 2024-11-03 10:08:06

如果您不关心同名的重复表单元素,那么您可以这样做:

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

在此处使用 下划线

If you do not care about repetitive form elements with the same name, then you can do:

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

Using underscore here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文