您沒有以適當的格式將數組傳遞給$.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