2011-11-24 199 views
1

我有一个有很多输入的表单。我想获取每个ID和值,然后将它们放在$ .load方法中。我尝试这样做:循环遍历表单输入

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

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

但很明显,这是行不通的。在参数中,我只有一个元素“名称”。我不确定我也应该使用扩展方法。

+1

不会是简单的'.serialize()''的$( '#形式')'和AJAX是什么? –

+0

表单元素是基于它们的'name'而不是'id'属性获取的。 – plaes

回答

1

序列化格式,你可以使用jQuery serialize method像这样:

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

千上传到'.serialize()' – plaes

1

假设你想建立的是具有两个属性(名称/值)对象的数组,这里是代码即可获得它:

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 
}); 
0

这似乎是工作

var params={}; 

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

console.log(params); 

输出

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

看到它在这里jsfiddle