2014-10-10 99 views
-1

我發現這個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

回答

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

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

說實話,我很可能會擺脫了'value'屬性斜線,並把它在'加入(「/」)'太,您的通話雖然 – bruchowski 2014-10-10 04:37:45

+0

這修正了向字符串添加和刪除值的問題,但未對輸入進行檢查不起作用,這是我原始問題的一部分。我用你的代碼更新了小提琴。 – Tyssen 2014-10-10 06:36:38

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