2013-06-03 8 views
5

Używam Bootstrap. Mam tabelę z polem wyboru w nagłówku i każdej kolumnie. Próbuję wykonać funkcję "sprawdź wszystkie" w jQuery, ale wygląda na to, że bootstrap nie używa sprawdzonego atrybutu. Jak widzę, dodaje on znacznik zakresu wokół mojego pola wyboru i dodaje do niego klasę "sprawdzoną". Czy jest jakaś możliwość pracy z sprawdzonym attr, czy muszę o tym zapomnieć i napisać sprawdzenie klasy i przełączanie?Bootstrap nie używa "sprawdzonego" atrybutu pola wyboru

Poniżej idzie część kodu z HTML wynik:

<td> 
    <div class="checker"> 
    <span class=""> 
     <input type="checkbox" class="payout_check" style="opacity: 0;"> 
    </span> 
    </div> 
</td> 

ta jest zaznaczona jedna. IT jest zaznaczone, trzeci rząd do zmiany:

<span class="checked"> 
+0

LOL, to wszystko zależy od twojego układu. Łatwo zrobić to, o co prosisz, ale żeby dać ci przykład w swojej pracy, muszę zobaczyć kod. Skonfiguruj [jsfiddle] (http://jsfiddle.net/) swojego przykładu i z chęcią napiszę go za pomocą kodu konfiguracyjnego – SpYk3HH

+0

możliwy duplikat [Przełącz pole wyboru na Twitterze Bootstrap] (http: // stackoverflow .com/questions/11958523/toggle-checkbox-on-twitter-bootstrap) –

+0

To nie zależy od mojego układu, tak myślę. Przełączam sprawdzane attr, to po prostu działa w inny sposób, używając span i jego klasy. – Bandydan

Odpowiedz

5

to praca dla odznacz

jQuery('span', $('#uniform-You_id_checkbox')).removeClass("checked"); 

$('#You_id_checkbox').removeAttr("checked"); 
4

Jeśli mam zrozumienia problemu Myślę, że odpowiedź na pytanie starszej powinno pomóc.

$('#toggle-all').click(function() { 
    $('.btn-group input[type="checkbox"]').prop('checked', true); 
}); 

http://jsfiddle.net/mmfansler/g3mu8/

+0

Przeczytałem to wcześniej, dzięki. Mój kod działa tak, jak wygląda. Ustawiłem wszystkie pozostałe atrybuty pól wyboru, ale pole wyboru nadal wygląda niezaznaczone. W wynikach funkcji console.dir() mogę zauważyć, że to hase sprawdzone = "sprawdzone", tak jak powinno być ... – Bandydan

1
 

    $(document).ready(function(){ 
     $("[type=checkbox]").on("click", function(){ 
      if ($(this).attr("checked")==undefined) { 
        $(this).attr("checked","checked"); 
       } else { 
        $(this).attr("checked",false); 
       } 
     }); 
    }); 

3

Ten pracował dla mnie:

$('#form-new-event input[type=checkbox]').parents('span').removeClass("checked"); 

$('#form-new-event input[type=checkbox]').removeAttr("checked"); 
1

Korzystanie jQuery

$("input[name='theCheckboxName']").is(":checked"); // Returns true or false 

LUB

$("input[name='theCheckboxName']").prop("checked"); // Returns true or false 

ten kontroluje „zaznaczone” właściwość elementu DOM zamiast istnienie „zaznaczone” atrybutu znacznika. Dzięki tej metodzie unikasz konieczności ustawiania i anulowania atrybutu "zaznaczone".


W Markup

<div class="checkbox"> 
    <label> 
     <input name="theCheckboxName" type="checkbox" checked="checked"> <span>Yes</span> 
    </label> 
</div> 

To sprawia, że ​​pole wyboru domyślnie zaznaczone. Właściwość "checked" powinna nadal być używana do programowego określenia stanu.


Wyjazd ten link, aby uzyskać więcej informacji:

http://www.tutorialrepublic.com/faq/how-to-check-a-checkbox-is-checked-or-not-using-jquery.php

0
$('#your-checkbox-id').parents('span').removeClass("checked").end().removeAttr("checked").change(); 

lub

$('#your-checkbox-id').prop('checked') && $('#your-checkbox-id').click(); 

PS: ostatni będzie emulować kliknięcie (tylko wtedy, gdy pole wyboru jest sprawdzone). Jeśli nie chcesz wywoływać zdarzenia, użyj pierwszego i usuń wywołanie "change()".

8

Można użyć prop. Zmierzyłem się z tym samym problemem. Po zaznaczeniu pola wyboru sprawdzany atrybut był niezdefiniowany. Kiedy zmieniłem go na prop, podał on prawdziwą i fałszywą wartość w oparciu o stan pola wyboru.

$('#checkboxId').prop('checked'); 
+0

To rozwiązało mój problem. Kiedyś zamiast tego dzwoniłem do atra ("sprawdziłem") i miałem kłopoty. Teraz działa. – SudoPlz

Powiązane problemy