Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在数组中获取选中的值并删除未选中的值_Javascript_Jquery_Asp.net Mvc 4_Checkbox_Partial Views - Fatal编程技术网

Javascript 如何在数组中获取选中的值并删除未选中的值

Javascript 如何在数组中获取选中的值并删除未选中的值,javascript,jquery,asp.net-mvc-4,checkbox,partial-views,Javascript,Jquery,Asp.net Mvc 4,Checkbox,Partial Views,我使用数组作为复选框值, 如果我点击复选框,它会得到值,如果我取消选中这个复选框,它会删除它的值,而不是保存在数组中,这是我的代码 function selectUser(sender) { if (sender.prop('checked'),true) assignedTo[assignedTo.length] = sender.id; else { for (var i = 0; i < assig

我使用数组作为复选框值, 如果我点击复选框,它会得到值,如果我取消选中这个复选框,它会删除它的值,而不是保存在数组中,这是我的代码

function selectUser(sender) {
        if (sender.prop('checked'),true)
            assignedTo[assignedTo.length] = sender.id;   
        else {
            for (var i = 0; i < assignedTo.length; i++) {
                if (sender.id == assignedTo[i]) {
                    assignedTo.splice(i, 1);
                    break;
                }
            }
        }
    }
功能选择用户(发送者){
if(sender.prop('checked'),true)
assignedTo[assignedTo.length]=发送方id;
否则{
对于(变量i=0;i

现在我的问题是,如果选中该选项,它将保存值,如果取消选中该选项,它不会从数组中删除值,那么有什么帮助吗

var values=[];

$(".cbx").click(function(){
    values=[];
    $(".cbx").each(function(){
        if($(this).is(":checked"))
            values.push($(this).val());
    });
    alert(values);
});


你采取的方法可能会非常乏味。您可以使用
.map()
每次选中或取消选中复选框时都可以重新计算数组,如下所示:

$(':checkbox[name=test]')。在('change',function()上{
var assignedTo=$(':复选框[name=test]:checked').map(函数(){
返回此.id;
})
.get();
//仅用于演示目的
$('pre.out').text(JSON.stringify(assignedTo));
});

1
2
3
4
5
6
7

请提供相应的HTML或创建一个JSFIDLE来演示什么不起作用。为什么不使用
.push()
.pop()
来添加和删除数组中的值。感谢您的回答。正是我想要的。
var values=[];

$(".cbx").change(function(){
    if($(this).is(":checked"))
       values.push($(this).val());
    else{
       var x = values.indexOf($(this).val());
       values.splice(x,1);
    }
    alert(values);
});