如果在 Jquery 加载页面时在网格中禁用了所有复选框,则如果没有选中复选框并禁用按钮,则发出警报

Posted

技术标签:

【中文标题】如果在 Jquery 加载页面时在网格中禁用了所有复选框,则如果没有选中复选框并禁用按钮,则发出警报【英文标题】:alert if no check box is selected and button disabled if all checkbox are disabled in a grid on page load by Jquery 【发布时间】:2017-10-21 15:03:45 【问题描述】:

如果在 jQuery 加载页面时网格中的所有复选框都被禁用,如果没有选中复选框并禁用按钮,如何发出警报

试过

 $( document ).ready(function() 
     $('input[type=checkbox]').change(function () 
         disableCheckbox();
    );

    disableCheckbox = function () 
        var count = $('input[type=checkbox]:checked').length;
        $('btnCancelItem').prop('disabled', count == 0);
    ;

    disableCheckbox();
);

<asp:LinkButton CssClass="btn btn-primary" ID="btnCancelItem" runat="server" CausesValidation="False"OnClientClick="return Confirmationbox();">&nbsp;Cancel Item</asp:LinkButton>
<asp:HiddenField id="hdnval" value=0 runat="server"/>

【问题讨论】:

这里有什么问题?你在哪里面临问题?什么不工作?你能解释一下吗? 如果没有选中复选框,如何发出警报? 如果 count == 0,则提醒 未选中复选框时发出警报? 是的,根据代码计数是检查复选框的数量,如果计数为 0,则不检查任何复选框。 【参考方案1】:

您缺少 # 以使按钮被禁用

$( document ).ready(function() 
  $('input[type=checkbox]').change(function () 
    disableCheckbox();
  );

  disableCheckbox = function () 
   var count = $('input[type=checkbox]:checked').length;
   if (count == 0)  alert("nothing selected")  
   $('#btnCancelItem').prop('disabled', count == 0);
  ;

  disableCheckbox();
);

【讨论】:

如果所有复选框都被禁用,按钮将被禁用【参考方案2】:
  disableCheckbox = function () 
                    //checked check-boxes length
                    checkedCount = $('#CP_Main_gvPOItems input[type=checkbox]:checked').length;

                    //check-boxes length
                    checkboxCount = $('#CP_Main_gvPOItems input[type=checkbox]').length;

                    //if no check-box is selected then alert
                    //                if (checkedCount == 0) 
                    //                    alert('No check-box is selected');
                    // 
                    //check for all disabled check-boxes
                    //var disableCheckBox = 0;
                    $('#CP_Main_gvPOItems input[type=checkbox]').each(function () 
                        if ($(this).is(':disabled')) 
                            disableCheckBox++;
                        
                    );

                    //if all check-boxes are disabled then disable button
                    if (checkboxCount == disableCheckBox) 

                        $('#CP_Main_btnCancelItem').attr("disabled", "disabled"); //# is missing
                    
                ;




                disableCheckbox();

                $("#CP_Main_btnCancelItem").button().click(function () 

                    var checkedCount = $('#CP_Main_gvPOItems input[type=checkbox]:checked').length;

                    var isDisabled = $(checkedCount).is(':disabled');
                    // alert(isDisabled);
                    var status = false;
                    if (checkedCount == 0 && isDisabled) 
                        alert('No check-box is selected');
                        status = false;
                    
                    else if (!isDisabled && checkedCount > 0) 
                        alert('Are you sure you want to cancel selected Record(s)?');
                        status = true;
                    
                    return status;
                );

【讨论】:

@Alive to Die 检查

以上是关于如果在 Jquery 加载页面时在网格中禁用了所有复选框,则如果没有选中复选框并禁用按钮,则发出警报的主要内容,如果未能解决你的问题,请参考以下文章

CodeMirror - 在页面加载时在编辑器上加载文件

jQuery UI - 如何在加载时在页面顶部显示进度条

一旦选择了行,Telerik网格就会禁用onrowselected事件

如果网格为空,Extjs 4 禁用排序

当我在gridview中过滤行没有找到记录时如何禁用导出按钮

jQuery - 如果值与数组中的元素匹配,则禁用复选框