【问题标题】:Limit number of checkboxes and update string based on their value限制复选框的数量并根据其值更新字符串
【发布时间】:2014-10-10 12:42:51
【问题描述】:

我发现了这个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

【问题讨论】:

    标签: javascript jquery checkbox


    【解决方案1】:
    $('.checkboxes input').change(function() {
        var filterURL = $('.checkboxes input:checked').map(function(){
           return $(this).val();
        }).get().join('');
    
        $('#output').html(filterURL);
    });
    

    【讨论】:

    • 老实说,我可能会去掉 value 属性中的斜线并将其也放入 join('/') 中,不过您的电话
    • 这修复了向字符串添加和删除值的问题,但是取消检查输入不起作用,这是我最初问题的一部分。我已经用你的代码更新了 Fiddle。
    【解决方案2】:
    var vals = [];
    $('input:checkbox:checked').each(function() { vals.push($(this).val()); });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-27
      • 1970-01-01
      • 2021-05-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-03
      • 1970-01-01
      • 2020-03-22
      相关资源
      最近更新 更多