2012-06-27 50 views
-2

我有一個汽車列表......總共約70個。我想在頂部有一組按鈕,當用戶點擊它們時,會自動檢查預定的汽車爲他們做出的選擇。因此,例如,當用戶選擇「進口」按鈕時,自動選擇用於謳歌,本田,現代,起亞,馬自達,三菱,日產,接穗,斯巴魯,鈴木,豐田和大衆的複選框。按鈕來選擇用戶的某些複選框

有人可以在這裏指出我正確的方向嗎?

+0

我一直沒有能夠找到任何東西,甚至接近我在找什麼。我發現的唯一的事情是選擇一個表單中的所有複選框......而不是基於它們的值的單個複選框。 – Brds

+0

可能的重複項:[one](http://stackoverflow.com/questions/2246787/check-marking-all-the-checkbox-using-jquery-on-click-of-a-button),[two](http ://stackoverflow.com/questions/2745601/jquery-button-click-to-selct-check-box),[three](http://stackoverflow.com/q/5229023/803285),..和[many更多](http://stackoverflow.com/search?q=%5Bjquery%5Dselect+checkboxes+on+button+click)。 – Asif

回答

1

享受:http://jsfiddle.net/v9p5C/

Toggler按鈕有一個data-filter屬性,該屬性指定切換的內容:

<input type="button" data-filter='us' value="USA"><br> 
<input type="button" data-filter='jp' value="Japanese"><br> 
<input type="button" data-filter='de' value="German"><br> 
<input type="button" data-filter='import' value="Import"><br> 

複選框具有data-tags屬性,它是標記的JSON數組:

<input type="checkbox" data-tags='["us"]'>Cadillac<br> 
<input type="checkbox" data-tags='["jp","import"]'>Mazda<br> 
<input type="checkbox" data-tags='["de","import"]'>VW<br> 
<input type="checkbox" data-tags='["hu","import"]'>Rába<br> 

最後一些jQuery使它的工作:

$(document).on('click','input[type="button"]',function(e){ 

    var filter = $(this).data('filter'); 

    $('input[type="checkbox"]').each(function(){ 
     var $checkbox = $(this); 
     var tags = $checkbox.data('tags'); 
     $.each(tags, function(){ 
      if(filter == this) $checkbox.prop("checked", !$checkbox.prop("checked")); 
     }); 
    }); 

}); 
+0

當然,您可以將這些標籤放入類名中,這可以大大簡化過濾部分,但是我無法抗拒JSON方式。 – biziclop

+0

我已經嘗試了大約一個小時來實現這一點,我無法得到它。我嘗試從您發佈的鏈接中截取所有js腳本並將它們包括在內,但仍然無法正常工作。有什麼想法嗎? – Brds

+0

什麼不起作用?有一件事可能會非常棘手,正確引用json數組到屬性(單/雙引號),但是您可以將它們替換爲一個空格分隔的列表,並使用jQuery的http://api.jquery.com/attribute-contains -word-selector /。 – biziclop

1

爲每個組創建一個單獨的CSS類,並將這些類分配給適當的元素。

然後,當按下相應的按鈕時,在複選框上設置選中的屬性。

假設每個按鈕具有類別type-buttons並且ID屬性被設置爲期望的type,即id="imports"

$('.type-buttons').click(function(){ 
    var type = $(this).attr('id'); 
    $('input:checkbox.' + type).attr('checked','checked'); 
}); 
1

將一個類添加到您想要選中的複選框,然後使用該類在用戶單擊按鈕時檢查它們。喜歡的東西:

$('.defaultOnAcura').attr('checked', 'true'); 
相關問題