您没有以适当的格式将数组传递给$.param
。从jQuery.param
docs:
如果传递的目的是在一个数组,它必须是物体在由.serializeArray()
返回的格式的阵列。
该数组应该是由名称/值对组成的对象数组。您看到undefined=undefined&undefined=undefined
,因为"val1".name
,"val1".value
,"val2".name
和"val2".value
都未定义。它应该是这个样子:
[{name: 'name1', value: 'val1'}, {name: 'name2', value: 'val2'}]
所以,你可以构建这样的阵列(假设你的复选框具有name
属性):
$('#rem_images').click(function(){
var images = [];
$('.images_set_image input:checked').each(function(){
var $this = $(this);
images.push({name: $this.attr('name'), value: $this.val()});
});
alert($.param(images));
return false;
});
即使雨衣,虽然是使用.map()
(因为函数式编程是好东西):
$('#rem_images').click(function(){
var images = $('.images_set_image input:checked').map(function(){
var $this = $(this);
return {name: $this.attr('name'), value: $this.val()};
}).get();
alert($.param(images));
return false;
});
这件事情是我很难理解,但你的答案和一些调查,我能够做到我想要什么,谢谢你=) – Metafaniel 2012-06-15 19:58:10