使用jquery和复选框添加和删除数组时出现问题

时间:2011-04-17 21:31:42

标签: javascript jquery arrays checkbox

当我尝试创建一个已选中复选框的数组时出现问题。

复选框是使用“onChange”属性动态生成的,该属性调用javascript函数在数组中添加或删除。该函数得到“talla”,它是要添加或删除的值。

这是我的函数的javascript代码:(arrayTallas是global)

function checkbox_marcado(talla) 
    {
        if(jQuery('#id_talla').is(':checked') == true)
        {
            arrayTallas.push(talla);

        } 
        else //elimina posicion del array al deseleccionar un checkbox
        {

                var index = arrayTallas.indexOf(talla);         
                arrayTallas.splice(index,1);
        }
    }

问题是第一个复选框工作正常,但其他复选框不会被删除。

例如。如果我有3个复选框,值为“1”“2”“3”,如果我点击第一个,它会正常添加,如果我再次点击它,它也会正常删除...但如果我点击第一个,然后是第二个,当我再次点击第二个从数组中删除它时,当我打印数组时,这就是我得到的:1 2 2

谢谢

2 个答案:

答案 0 :(得分:0)

如果你还在使用jQuery,为什么不使用这样的函数:

$('#tallas').live('click', function(){
   $(':checkbox:checked').map(function() {
     return this.value;
   }).get().join(',');
});

答案 1 :(得分:0)

我想你的意思是说:

jQuery('#id_' + talla)

你在说:

jQuery('#id_talla')

同时检查以确保没有多个具有相同id属性的复选框。