选中复选框时显示删除图标 - JS

用户7345776

我正在尝试这样做,当用户至少选中一个框时,图标必须显示,如果没有,它会隐藏。

使用我的代码,当我选择#master复选框时,图标会显示,但是当我选择other checkbox每一行显示时,它不会显示。

为什么会这样?

HTML:

 <table  id="users-table" class="table table-hover table-condensed" style="width:100%">
    <thead>
        <tr>
           <th><input type="checkbox" id="master"></th>
            <th>Category</th>
            <th>Description</th>
            <th>Number of Items</th>
            <th>Action</th>
        </tr>
    </thead>
  </table>   


<script type="text/javascript">
$(document).ready(function() {

        oTable = $('#users-table').DataTable({
            "processing": true,
            "serverSide": true,
            "bProcessing":false,
            "bSort":false,
            "ajax": "{{ route('datatable.getcategories') }}",
            "columns": [
                {data: 'checkbox', name: 'checkbox', orderable: false, searchable: false},      
                {data: 'name', name: 'name'},
                {data: 'action', name: 'action', orderable: false, searchable: false}        
            ],
        });
});

</script>

控制器:

$stduents= Student::all();
        return Datatables::of($student)->addColumn('checkbox', function ($std) {
            return  '<input type="checkbox" class="sub_chk" data-id="'.$std->id.'">';
   })->make(true);  

我在哪里选择我的复选框:

<script type="text/javascript">
    $(document).ready(function () {

        $("i[type='icon']").css('display','none'); //set style explicitly

        $('#master').on('click', function(e) {
         if($(this).is(':checked',true))  
         {
            $(".sub_chk").prop('checked', true);  
         } else {  
            $(".sub_chk").prop('checked',false);  
         }  
        });



        $('.delete_all').on('click', function(e) {

            var allVals = [];  
            $(".sub_chk:checked").each(function() {  
                allVals.push($(this).attr('data-id'));
            });  

            if(allVals.length <=0)  
            {  
                alert("Please select row.");  
            } 

            else {  



                var check = confirm("Are you sure you want to delete this row?");  
                if(check == true){  

                    var join_selected_values = allVals.join(","); 

                    $.ajax({
                        url: $(this).data('url'),
                        type: 'GET',
                        headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
                        data: 'ids='+join_selected_values,

                        success: function (data) {
                            if (data['success']) 
                            {
                                $("#" + data['tr']).slideUp("slow");
                                location.reload();

                                alert(data['success']);
                            } 
                            else if (data['error']) 
                            {
                                alert(data['error']);
                            } 
                            else 
                            {
                                //alert('Whoops Something went wrong!!');
                            }
                        },
                        error: function (data) {
                            alert(data.responseText);
                        }
                    });

                  $.each(allVals, function( index, value ) 
                  {
                      $('table tr').filter("[data-row-id='" + value + "']").remove();
                  });
                }  
            }  
        });

        $('[data-toggle=confirmation]').confirmation({
            rootSelector: '[data-toggle=confirmation]',
            onConfirm: function (event, element) {
                element.trigger('confirm');
            }
        });

        $(document).on('confirm', function (e) {
            var ele = e.target;
            e.preventDefault();

            $.ajax({
                url: ele.href,
                type: 'GET',
                headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
                success: function (data) {
                    if (data['success']) 
                    {
                        $("#" + data['tr']).slideUp("slow");
                        location.reload();

                        alert(data['success']);
                    } 
                    else if (data['error']) {
                        alert(data['error']);
                    } 
                    else 
                    {
                        alert('Whoops Something went wrong!!');
                    }
                },
                error: function (data) {
                    alert(data.responseText);
                }
            });

            return false;
        });



    });

    </script>

至少选中一个复选框时显示图标:

    <script>

    $("input[type='checkbox']").click(function() {
    var atLeastOneChecked = false;
    $("input[type='checkbox']").each(function(index) {
      if ($(this).prop('checked'))
        atLeastOneChecked = true;
    });
    if (atLeastOneChecked) {
      $("i[type='icon']").show(); //built-in jquery function
      //...or...
      $("i[type='icon']").css('display','inline-block'); //or set style explicitly
    } else {
      $("i[type='icon']").hide(); //built-in jquery function
      //...or...
      $("i[type='icon']").css('display','none'); //set style explicitly
    }
    });
    </script>
丹尼

由于您的复选框是在页面加载后添加的,因此$("input[type='checkbox']").click(...)不会向其中添加事件处理程序。IE

//will handle clicked events on checkbox existing when this js runs
$('input[type="checkbox"]').click(function() { 
  alert('clicked') 
});

//will handle clicked events on dynamically added checkboxes
$(document).on('click', 'input[type="checkbox"]', function() {
  alert('clicked2');
});

//add new checkbox to page
$('button').click(function() { $('#master').after($('<input type="checkbox" >')) });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="checkbox" id="master">
<button type='button'>Add Checkbox</button>

你想要做的是 $(document).on('click', 'input[type="checkbox"]', function() { ... }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery / JS复选框值不会删除取消选中

来自分类Dev

从JS的最终代码中删除未选中的复选框

来自分类Dev

选中复选框时在php中调用js函数

来自分类Dev

使用 vanillla JS 在页面重新加载时保持选中或取消选中复选框

来自分类Dev

在JS中单击复选框时显示总价

来自分类Dev

如果在React JS中选中了复选框,如何隐藏或显示div

来自分类Dev

动态显示选中的复选框值列表 js/jquery

来自分类Dev

Angular.js-取消选中复选框时如何返回上一状态

来自分类Dev

在Angular JS中取消选中复选框时如何禁用下拉菜单

来自分类Dev

使用Angular.js选中复选框时如何设置输入字段值

来自分类Dev

在视图模型中设置选定的值时,未选中Knockout js复选框

来自分类Dev

Angular JS复选框使用$ watch来计数选中的复选框

来自分类Dev

在淘汰赛js中取消选中复选框

来自分类Dev

Knockout.js复选框已选中并单击事件

来自分类Dev

Nightwatch.js-如何断言未选中复选框?

来自分类Dev

如果选中复选框angular.js,则执行if函数

来自分类Dev

计算React.js中的选中复选框

来自分类Dev

淘汰赛JS复选框已选中绑定

来自分类Dev

在淘汰赛js中取消选中复选框

来自分类Dev

Angular.js:选中所有复选框

来自分类Dev

计算React.js中的选中复选框

来自分类Dev

jQuery 或 js 检查复选框是否被选中

来自分类Dev

在选中复选框时显示数据

来自分类Dev

选中复选框时显示按钮

来自分类Dev

在 Ext Js 网格过滤器中未选中过滤器菜单的复选框时触发事件?

来自分类Dev

React JS 如何根据选中的值数组选中一些复选框

来自分类Dev

选中或取消选中复选框时如何显示吐司?

来自分类Dev

Angular JS,过滤时请记住复选框状态

来自分类Dev

JS中的复选框

Related 相关文章

  1. 1

    jQuery / JS复选框值不会删除取消选中

  2. 2

    从JS的最终代码中删除未选中的复选框

  3. 3

    选中复选框时在php中调用js函数

  4. 4

    使用 vanillla JS 在页面重新加载时保持选中或取消选中复选框

  5. 5

    在JS中单击复选框时显示总价

  6. 6

    如果在React JS中选中了复选框,如何隐藏或显示div

  7. 7

    动态显示选中的复选框值列表 js/jquery

  8. 8

    Angular.js-取消选中复选框时如何返回上一状态

  9. 9

    在Angular JS中取消选中复选框时如何禁用下拉菜单

  10. 10

    使用Angular.js选中复选框时如何设置输入字段值

  11. 11

    在视图模型中设置选定的值时,未选中Knockout js复选框

  12. 12

    Angular JS复选框使用$ watch来计数选中的复选框

  13. 13

    在淘汰赛js中取消选中复选框

  14. 14

    Knockout.js复选框已选中并单击事件

  15. 15

    Nightwatch.js-如何断言未选中复选框?

  16. 16

    如果选中复选框angular.js,则执行if函数

  17. 17

    计算React.js中的选中复选框

  18. 18

    淘汰赛JS复选框已选中绑定

  19. 19

    在淘汰赛js中取消选中复选框

  20. 20

    Angular.js:选中所有复选框

  21. 21

    计算React.js中的选中复选框

  22. 22

    jQuery 或 js 检查复选框是否被选中

  23. 23

    在选中复选框时显示数据

  24. 24

    选中复选框时显示按钮

  25. 25

    在 Ext Js 网格过滤器中未选中过滤器菜单的复选框时触发事件?

  26. 26

    React JS 如何根据选中的值数组选中一些复选框

  27. 27

    选中或取消选中复选框时如何显示吐司?

  28. 28

    Angular JS,过滤时请记住复选框状态

  29. 29

    JS中的复选框

热门标签

归档