Bootstrap不使用checkbox的“checked”属性

时间:2013-06-03 21:19:28

标签: jquery twitter-bootstrap checkbox

我正在使用Bootstrap。我有一个表格,在标题和每个列中都有一个复选框。我试图在jQuery上做“检查所有”功能,但似乎bootstrap不使用checked属性。正如我所看到的,它在我的复选框周围添加了span标记,并为其添加了一个“已检查”的类。是否有可能使用check attr,或者我必须忘记它并编写类检查和切换?

下面是结果HTML中的部分代码:

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

这是未经检查的。检查它,第三行更改为:

<span class="checked">

7 个答案:

答案 0 :(得分:10)

您可以使用 prop 。我遇到了同样的问题。在选中复选框时,选中的属性为undefined。当我将其更改为prop时,它会根据复选框的状态给出真值和假值。

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

答案 1 :(得分:5)

这项工作取消选中

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

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

答案 2 :(得分:4)

如果我理解你的问题,我认为对旧问题的答案应该会有所帮助。

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

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

答案 3 :(得分:3)

这对我有用:

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

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

答案 4 :(得分:1)


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

答案 5 :(得分:1)

使用jQuery

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

OR

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

这将检查DOM元素的“checked”属性,而不是标记上“checked”属性的存在。使用此方法可以避免设置和取消设置“已检查”属性。


标记

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

这会使复选框默认选中。 “checked”属性仍应用于以编程方式确定状态。


点击此链接了解更多信息:

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

答案 6 :(得分:0)

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

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

PS:最后一个将模拟点击(仅当选中复选框时)。如果您不想触发事件,请使用第一个事件并删除“change()”调用。