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);
});