Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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_Arrays - Fatal编程技术网

Javascript 从列表中删除值

Javascript 从列表中删除值,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个复选框列表。单击每个复选框后,我将向隐藏变量添加值。但问题是,如果取消选中复选框,是否要从列表中删除该值。这件事怎么做 这是隐藏的表单变量 <input name="IDList[]" type="hidden" id="IDList" value="" /> 类似这样的东西:(演示) 我们使用一个名为vals的对象来存储信息。选中/取消选中时添加和删除 var vals = {}; $('input[type=checkbox]').click(function()

我有一个复选框列表。单击每个复选框后,我将向隐藏变量添加值。但问题是,如果取消选中复选框,是否要从列表中删除该值。这件事怎么做


这是隐藏的表单变量

<input name="IDList[]" type="hidden" id="IDList" value="" /> 
类似这样的东西:(演示)

我们使用一个名为
vals
的对象来存储信息。选中/取消选中时添加和删除

var vals = {};

$('input[type=checkbox]').click(function() {
    var that = $(this);
    if (that.is(':checked')) {
        console.log(this.name);
       vals[this.name] = "In your Object";
    }
    else {
        delete vals[this.name]; 
    }
    console.log(vals);

});

按照您的逻辑,您可以这样做:

$('#IDList').data('value', []);

$(".myCheckboxClass").change(function() {
    var list = $('#IDList').data('value');

    if ($(this).is(":checked")) {
        list.push($(this).val());
    } else {
        var indexToRemove = list.indexOf($(this).val());
        list.splice(indexToRemove, 1);
    }
    $('#IDList').val(list);
});

但如果您只关心在数据提交或其他操作时“代码”>IDIDList}/CODE的值,您可能想考虑另一种方法:在需要时对选中的值进行校核。

$('#form').submit(function() {
    var list = $('input.myCheckboxClass:checked', this).map(function() {
        return $(this).val();
    }).get();

    $('#IDList').val(list);
});

请参见以上两个操作:。

如何存储V值?在一个对象中?你能添加你正在使用的代码吗?这是隐藏的形式变量这是隐藏的形式变量和jquery$(“.myCheckboxClass”).change(函数(){var output=0;$(“.myCheckboxClass”).change(函数(){if($(this).is(“:checked”){output+=”,“+$(this.val();}else{output=$.grep(输出,函数(值){返回值!=$(this.val();});}$(“#IDList”).val(输出);})@erik,我用你在评论中发布的代码更新了你的问题。检查它是否正确。是的,检查示例如果我愚弄了链接,代码什么都不做。没有输出。如何将此结果放入隐藏变量$('#IDList')。attr('value',vals);值在对象中。也许您应该稍微阅读一下JS的基础知识
$('#form').submit(function() {
    var list = $('input.myCheckboxClass:checked', this).map(function() {
        return $(this).val();
    }).get();

    $('#IDList').val(list);
});