【问题标题】:Loop throught form inputs循环表单输入
【发布时间】:2011-11-24 17:34:22
【问题描述】:

我有一个包含大量输入的表单。我想获取每个 id 和 value,然后将它们放入 $.load 方法中。我试过这个:

$("#form input").each(function() {
    var name = $(this).attr("id");
    var value = $(this).attr("value");
    $.extend(params, {
        name, value
    });
});

然后使用$.load("script.php", params);

但显然它不起作用。在参数中,我只有一个元素“名称”。而且我不确定我是否也应该使用扩展方法。

【问题讨论】:

  • .serialize() $('#form') 和 AJAX 不是更简单吗?
  • 表单元素是根据它们的name而不是id属性来选择的。

标签: jquery forms serialization loops


【解决方案1】:

要序列化表单,您可以像这样使用jQuery serialize method:

var params = $("#form").serialize();
$.load("script.php", params);

【讨论】:

    【解决方案2】:

    假设您要构建的是具有两个属性(名称/值)的对象数组,下面是获取它的代码:

    var myparams = [];
    $("form input").each(function() {
    
        // build an object literal to store your values
        var o = {
            name: this.id, // no need to turn 'this' in a jquery object to get the ID
            value: $(this).val()  // use .val() to get the value
        };
    
        myparams.push(o); // add to the array
    });
    

    【讨论】:

      【解决方案3】:

      这似乎有效

      var params={};
      
      $('input').each(function(){
          params[$(this).attr('id')] = $(this).val();
      });
      
      console.log(params);
      

      输出

      bar: "bar"
      bof: "bof"
      foo: "foo"
      

      在jsfiddle这里查看

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-15
        • 1970-01-01
        • 1970-01-01
        • 2019-03-24
        • 1970-01-01
        • 2010-12-16
        • 1970-01-01
        • 2021-07-31
        相关资源
        最近更新 更多