0

当用户选中或取消选中表单中的复选框时,我正在尝试更新全局数组。然后该数组将被提交给服务器以更新数据库中选中的选项。我已经将选中复选框的 ID 推送到数组中,但不确定如何删除它们。

我创建了一个基本的 jsFiddle 在这里演示:

http://jsfiddle.net/ArFuz/

PS - 稍后将正确命名该数组:)

4

3 回答 3

2

由于您每次都在遍历所有复选框,因此只需在开头清空数组并仅将选中的项目放回:

ids = [];

if (this.checked) {    
    ids.push(this.id);
}
于 2010-11-22T15:35:42.853 回答
2

为什么每次点击都会这样做,只需在提交表单时执行 - 您也可以使用 :checked 选择器,而不是选择和迭代您不感兴趣的元素。

正如 jyoseph 所建议的那样-您可以在此处使用序列化数组来构建名称/值数组

例如

$('#submitButton').click( function(ev){

   var ids = [];

    $(':checkbox:checked').each( function(){

         ids.push(this.id);

    });

   //do something with ids

});
于 2010-11-22T15:42:08.747 回答
1

我认为您可能对 jQuery serializeArray() ( api 链接)很好

$('#myForm input[type=checkbox]').change(function(){

    // get all checked checkboxes
    var ids = $('myForm input[type=checkbox]:checked').serializeArray();

});

编辑:JSBin 示例

于 2010-11-22T15:41:42.477 回答