【问题标题】:Bootstrap doesn't use "checked" attribute of checkboxBootstrap 不使用复选框的“选中”属性
【发布时间】:2013-06-03 21:19:27
【问题描述】:

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

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

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

这是未经检查的。选中后,第三行变为:

<span class="checked">

【问题讨论】:

  • 大声笑,这完全取决于您的布局。它很容易按照您的要求进行,但是为了给您提供工作中的示例,我需要查看一些代码。为您的示例设置一个jsfiddle,我很乐意使用您的代码设置将其写在上面
  • 我认为这不取决于我的布局。我切换选中的 attr,它只是以不同的方式工作,使用 span 及其类。
  • 不确定您要在这里做什么。 Bootstrap 不包含任何特殊的复选框(除了一个或两个布局类)。你在用插件吗?
  • 我有一些复选框和一个“全部统治”)点击它我想全选,它添加了一个属性checked='checked',但是复选框的不透明度=0% ,由于引导程序中的某些内容。 Bootstrap 用“更好”的东西代替了它们。只能通过更改父跨度的类来检查结果复选框。看起来我的问题是“我的引导程序有什么问题?”

标签: jquery twitter-bootstrap checkbox


【解决方案1】:

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

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

【讨论】:

  • 这解决了我的问题。我曾经调用 attr('checked') 而不是这个,我遇到了麻烦。现在可以了。
【解决方案2】:

这项工作取消选中

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

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

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

    • 我以前读过,谢谢。我的代码按预期工作。我设置了所有其他复选框属性,但复选框看起来仍然未选中。在console.dir() 结果中,我可以看到,它有checked="checked",因为它应该是......
    【解决方案4】:

    这对我有用:

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

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

    【讨论】:

      【解决方案5】:
      $(文档).ready(函数(){ $("[type=checkbox]").on("点击", function(){ if ($(this).attr("checked")==undefined) { $(this).attr("checked","checked"); } 别的 { $(this).attr("checked",false); } }); });

      【讨论】:

        【解决方案6】:

        使用 jQuery

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

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

        这会检查 DOM 元素的“checked”属性,而不是标签上是否存在“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

        【讨论】:

          【解决方案7】:
          $('#your-checkbox-id').parents('span').removeClass("checked").end().removeAttr("checked").change();
          

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

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

          【讨论】:

            猜你喜欢
            • 2018-05-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-04-06
            • 1970-01-01
            • 2012-11-13
            相关资源
            最近更新 更多