问问题
11630 次
2 回答
4
首先,您必须为您的选择使用类而不是 id。当你使用 id 时,jQuery 只会返回一个元素。之后,以下函数会将您作为参数提供的选择的所有值转换为数组。
/**
* Convert select to array with values
*/
function serealizeSelects (select)
{
var array = [];
select.each(function(){ array.push($(this).val()) });
return array;
}
所以:
var course_ids = serealizeSelects($('.course_id'));
例如应该返回:
[1,3,2]
于 2012-07-10T21:38:48.203 回答
3
我会给每个select
元素一个唯一的名称,一个数组在这里也可以做得很好,看这个例子:
$('#selected > tbody:last').append('<tr><td><select id=\'plan_id\' name="my_select[]"><option value=\'1\'>One</option><option value=\'2\'>Two</option><option value=\'3\'>Three</option></select></td></tr>');
然后在发送之前序列化表单:
var my_data = $("form").serialize();
...
编辑:完整的例子:
$("#add").click(function() {
$('#selected > tbody:last').append('<tr><td><select id=\'plan_id\' name="my_select[]"><option value=\'1\'>One</option><option value=\'2\'>Two</option><option value=\'3\'>Three</option></select></td></tr>');
});
^^^^^^^^^^^^^^^^^^^
和:
$('#course_update').click(function() {
var my_data = $("form").serialize();
$('#update_status').html('<img src="../images/ajax-loader.gif" />');
$.post('../update.php', my_data, function(data) {
$('#update_status').html(data);
return false;
});
});
于 2012-07-10T21:06:54.660 回答