在页面加载时检查bootstrap-table复选框

时间:2017-03-06 13:05:51

标签: javascript jquery bootstrap-table

我正在使用bootstrap-table,我正在尝试设置复选框,问题是复选框是在检查时启动的,没有特殊原因



    <html>

    <head>
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <meta name="robots" content="noindex, nofollow">
      <meta name="googlebot" content="noindex, nofollow">
      <script type="text/javascript" src="//code.jquery.com/jquery-2.1.0.js"></script>
      <script type="text/javascript" src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
      <link rel="stylesheet" type="text/css" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
      <link rel="stylesheet" type="text/css" href="https://rawgit.com/wenzhixin/bootstrap-table/master/src/bootstrap-table.css">
      <script type="text/javascript" src="https://rawgit.com/wenzhixin/bootstrap-table/master/src/bootstrap-table.js"></script>
      <title>Bootstrap Table</title>
    </head>
    <body>
      <div class="container">
        <div class="container">
  <div class="row">
    <div class="col-md-12">
      <div class="panel panel-primary">
        <div class="panel-heading">why checked?</div>

        <div class="panel-body">
          <table data-row-style="rowStyle" data-toggle="table" data-click-to-select="true">
            <thead>
              <th data-field="dd" data-checkbox="true">
              </th>
              <th data-sortable="true">
                x
              </th>
              <th data-sortable="true">
                y
              </th>
              <th data-sortable="true">
                z
              </th>
              <th data-sortable="true">
                t
              </th>
              <th data-sortable="true">
                r
              </th>
              <th data-sortable="true">
                m
              </th>
              <th></th>
            </thead>
            <tbody>
              <tr>
                <td>
                </td>
                <td> 1</td>
                <td>2</td>
                <td>3</td>
                <td> 4</td>
                <td> 5</td>
                <td><span class="label label-default">xxx</span></td>
                <td>
                  <div class="form-inline text-right">
                    <form class="form-group" action="{{url('invobj')}}/{{$obj->id}}/edit" method="post">
                      <button class="btn btn-primary btn-xs"><i class="glyphicon glyphicon-pencil"></i></button>
                    </form>
                    <form class="form-group" action="{{url('invobj')}}/{{$obj->id}}" method="post">
                      <input name="_method" type="hidden" value="DELETE">
                      <input type="hidden" name="_token" value="{{csrf_token()}}">
                      <button class="btn btn-warning btn-xs"><i class="glyphicon glyphicon-remove"></i></button>
                    </form>
                  </div>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
    </div>
  </div>
</div>

      </div>
    </body>
    </html>
&#13;
&#13;
&#13;

演示:http://jsfiddle.net/e3nk137y/12160/

第二个问题,如何在复选框中添加名称和值,我试图从data-formatter函数返回值/自定义属性,但没有看到开发工具中的任何更改

文档没有提及任何属性/功能/事件来自定义thouse复选框

更新 似乎如果要对所选元素进行排序,第一列(复选框列)将消失

3 个答案:

答案 0 :(得分:3)

当你在表格单元格中找到空白字符时,看到bootstrap-table崩溃实际上非常有趣。一旦修剪了包括换行符在内的任何空白字符,问题就会自行解决。

&#13;
&#13;
function check() {
  $("tbody input:checked").each(function() {
    console.log($(this).parents("tr:first").data("val"));
  });
}
&#13;
<script type="text/javascript" src="//code.jquery.com/jquery-2.1.0.js"></script>
<script type="text/javascript" src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="https://rawgit.com/wenzhixin/bootstrap-table/master/src/bootstrap-table.css">
<script type="text/javascript" src="https://rawgit.com/wenzhixin/bootstrap-table/master/src/bootstrap-table.js"></script>
<div class="container">
  <div class="container">
    <div class="row">
      <div class="col-md-12">
        <div class="panel panel-primary">
          <div class="panel-heading">why checked?</div>
          <div class="panel-body">
            <button onclick="check()">Check Values</button>
            <table data-row-style="rowStyle" data-toggle="table" data-click-to-select="true">
              <thead>
                <th data-field="dd" data-checkbox="true">
                </th>
                <th data-sortable="true">
                  x
                </th>
                <th data-sortable="true">
                  y
                </th>
                <th data-sortable="true">
                  z
                </th>
                <th data-sortable="true">
                  t
                </th>
                <th data-sortable="true">
                  r
                </th>
                <th data-sortable="true">
                  m
                </th>
                <th></th>
              </thead>
              <tbody>
                <tr data-val="100">
                  <td></td>
                  <td>100</td>
                  <td>200</td>
                  <td>300</td>
                  <td>400</td>
                  <td>500</td>
                  <td><span class="label label-default">xxx</span></td>
                  <td>
                    <div class="form-inline text-right">
                      <form class="form-group" action="{{url('invobj')}}/{{$obj->id}}/edit" method="post">
                        <button class="btn btn-primary btn-xs"><i class="glyphicon glyphicon-pencil"></i></button>
                      </form>
                      <form class="form-group" action="{{url('invobj')}}/{{$obj->id}}" method="post">
                        <input name="_method" type="hidden" value="DELETE">
                        <input type="hidden" name="_token" value="{{csrf_token()}}">
                        <button class="btn btn-warning btn-xs"><i class="glyphicon glyphicon-remove"></i></button>
                      </form>
                    </div>
                  </td>
                </tr>
                <tr data-val="200">
                  <td></td>
                  <td>200</td>
                  <td>200</td>
                  <td>300</td>
                  <td>400</td>
                  <td>500</td>
                  <td><span class="label label-default">xxx</span></td>
                  <td>
                    <div class="form-inline text-right">
                      <form class="form-group" action="{{url('invobj')}}/{{$obj->id}}/edit" method="post">
                        <button class="btn btn-primary btn-xs"><i class="glyphicon glyphicon-pencil"></i></button>
                      </form>
                      <form class="form-group" action="{{url('invobj')}}/{{$obj->id}}" method="post">
                        <input name="_method" type="hidden" value="DELETE">
                        <input type="hidden" name="_token" value="{{csrf_token()}}">
                        <button class="btn btn-warning btn-xs"><i class="glyphicon glyphicon-remove"></i></button>
                      </form>
                    </div>
                  </td>
                </tr>
                <tr data-val="300">
                  <td></td>
                  <td>300</td>
                  <td>200</td>
                  <td>300</td>
                  <td>400</td>
                  <td>500</td>
                  <td><span class="label label-default">xxx</span></td>
                  <td>
                    <div class="form-inline text-right">
                      <form class="form-group" action="{{url('invobj')}}/{{$obj->id}}/edit" method="post">
                        <button class="btn btn-primary btn-xs"><i class="glyphicon glyphicon-pencil"></i></button>
                      </form>
                      <form class="form-group" action="{{url('invobj')}}/{{$obj->id}}" method="post">
                        <input name="_method" type="hidden" value="DELETE">
                        <input type="hidden" name="_token" value="{{csrf_token()}}">
                        <button class="btn btn-warning btn-xs"><i class="glyphicon glyphicon-remove"></i></button>
                      </form>
                    </div>
                  </td>
                </tr>
              </tbody>
            </table>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>
&#13;
&#13;
&#13;

我在每行添加了data-val,函数check()将记录所选行的值。

答案 1 :(得分:0)

这对我有用(取消选中所有页面):

<script>
        var $table = $('#search-result');

        $(function () {
              $table.bootstrapTable('togglePagination').bootstrapTable('uncheckAll').bootstrapTable('togglePagination')
        });

 </script>

答案 2 :(得分:0)

我知道这真的很旧,但我遇到了同样的问题,上面的答案没有帮助。我终于找到了我的问题,所以想把它贴在这里,以防其他人通过谷歌搜索发现这个问题(或者你仍然在寻找答案并使用 jquery 清除复选框)

对于上面的代码,您的复选框字段还链接到数据字段。

<th data-field="dd" data-checkbox="true">
</th>

如果您稍后填写的数据具有 dd 列的值,则根据 the documentation 将其设置为 true:

<块引用>

如果给定值,复选框会自动选中。也可以使用格式化程序选中/取消选中复选框(返回 true 进行检查,返回 false 取消选中)。

因此,只需删除 data-field="dd" 就可以解决问题。

这在某些时候通过不同版本的 bootstrap-table 发生了变化。我已经从 1.9.0 升级到 1.18.3,所以我不确定确切的时间,但是从具有 data-field 属性的 <th> 中删除 data-checkbox 属性修复了我的问题,并且它不再在页面加载时将其标记为已检查。