2013-06-03 33 views
5

Tôi đang sử dụng Bootstrap. Tôi có một bảng với một hộp kiểm trong một tiêu đề và trong mỗi collumn. Tôi đang cố gắng để làm cho "kiểm tra tất cả" chức năng trên jQuery, nhưng có vẻ như là bootstrap không sử dụng thuộc tính kiểm tra. Như tôi thấy, nó thêm thẻ span xung quanh hộp kiểm của tôi và thêm một lớp 'kiểm tra' vào nó. Có khả năng làm việc với kiểm tra attr, hoặc tôi phải quên nó và viết lớp kiểm tra và chuyển đổi?Bootstrap không sử dụng thuộc tính "đã kiểm tra" của hộp kiểm

Dưới đây đi một phần của mã từ HTML kết quả:

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

Đây là một đánh dấu. Nó được chọn, hàng thứ ba thay đổi thành:

<span class="checked"> 
+0

Rất tiếc, tất cả điều này phụ thuộc vào bố cục của bạn. CNTT dễ dàng để làm những gì bạn yêu cầu, nhưng để cung cấp cho bạn ví dụ trong công việc của bạn, tôi cần phải xem một số mã. Thiết lập một [jsfiddle] (http://jsfiddle.net/) của ví dụ của bạn và tôi muốn được hạnh phúc để viết nó trên thông qua việc thiết lập mã của bạn – SpYk3HH

+0

có thể trùng lặp của [Toggle checkbox on Twitter Bootstrap] (http: // stackoverflow .com/questions/11958523/toggle-checkbox-on-twitter-bootstrap) –

+0

Nó không phụ thuộc vào cách bố trí của tôi, tôi nghĩ vậy. Tôi chuyển đổi kiểm tra attr, nó chỉ là làm việc theo một cách khác nhau, sử dụng span và lớp của nó. – Bandydan

Trả lời

5

tác phẩm này với bỏ chọn

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

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

Nếu tôi hiểu vấn đề của bạn, tôi nghĩ câu trả lời cho câu hỏi cũ sẽ hữu ích.

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

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

+0

Tôi đã đọc điều đó trước đây, cảm ơn. Mã của tôi hoạt động như nó to. Tôi đặt tất cả các thuộc tính hộp kiểm khác, nhưng hộp kiểm vẫn trông không được chọn. Trong kết quả console.dir() tôi có thể thấy, rằng nó đã kiểm tra = "kiểm tra", vì nó phải là ... – 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

này đã làm việc cho tôi:

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

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

Sử dụng jQuery

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

HOẶC

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

này kiểm tra các "kiểm tra" của tài tử DOM chứ không phải là sự tồn tại của "kiểm tra" thuộc tính trên thẻ. Sử dụng phương pháp này bạn tránh phải đặt và bỏ đặt thuộc tính "đã chọn".


Trong Markup

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

Điều này làm cho hộp kiểm tra theo mặc định. Thuộc tính "đã kiểm tra" sẽ vẫn được sử dụng để xác định trạng thái theo chương trình.


Kiểm tra liên kết này để biết thêm:

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(); 

hoặc

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

PS: người cuối cùng sẽ bắt chước một nhấp chuột (chỉ nếu hộp kiểm là đã kiểm tra). Nếu bạn không muốn kích hoạt sự kiện, hãy sử dụng sự kiện đầu tiên và xóa cuộc gọi "change()".

8

Bạn có thể sử dụng prop. Tôi phải đối mặt với cùng một vấn đề. Khi chọn hộp kiểm, thuộc tính được chọn là không xác định. Khi tôi thay đổi nó để chống đỡ, nó đã cho giá trị đúng và sai dựa trên trạng thái của hộp kiểm.

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

Điều này giải quyết được vấn đề của tôi. Tôi thường gọi attr ('checked') thay vì điều này, và tôi đã gặp rắc rối. Bây giờ nó hoạt động. – SudoPlz

Các vấn đề liên quan