限制复选框的数量并根据其值更新字符串

时间:2014-10-10 04:24:09

标签: javascript jquery checkbox

我发现这个answer是我想要做的部分,当人们超过某个限制时取消选中复选框。

现在我想修改它,以便在选中/取消选中复选框时,在字符串中添加和删除复选框的值。

我的更新代码如下所示:

var filterURL = '';
var checked = [],
$check = $('.accordion-list input').change(function() {
    checked.push(this);
    checked = $(checked);
    checked.prop('checked', false).slice(-6).prop('checked', true);
    if($(this).is(':checked')) {
        filterURL += ($(this).val());
    }
    else {
        filterURL = filterURL.replace($(this).val(),'');
    }
    alert(filterURL);
});

这很好用,直到我开始尝试取消选中复选框 - 它们不会取消选中,并且值会不断附加到字符串中。

Working demo

2 个答案:

答案 0 :(得分:1)

$('.checkboxes input').change(function() {
    var filterURL = $('.checkboxes input:checked').map(function(){
       return $(this).val();
    }).get().join('');

    $('#output').html(filterURL);
});

答案 1 :(得分:0)

var vals = [];
$('input:checkbox:checked').each(function() { vals.push($(this).val()); });