由于javascript应用于样式化复选框,因此未调用INPUT元素的onClick函数(type = checkbox)

时间:2018-01-31 05:11:34

标签: javascript jquery html checkbox

我有一个带有复选框的可选项目列表,我已应用javascript来设置复选框的样式。我编写了一个JS函数来选择列表中的所有项目。当复选框上没有应用样式JS时,它工作正常,但是当我应用JS时,“onClick”中的函数没有被调用。

以下是我的代码:

1)呈现给HTML表的代码

<HeaderTemplate>
    <asp:CheckBox ID="checkAll" runat="server" onclick="checkall(this)" />
</HeaderTemplate>

2)checkAll功能

function checkall(objRef) {
            var GridView = objRef.parentNode.parentNode.parentNode;
            var inputList = GridView.getElementsByTagName("input");
            for (var i = 0; i < inputList.length; i++) {
                //Get the Cell To find out ColumnIndex
                var row = inputList[i].parentNode.parentNode;
                if (inputList[i].type == "checkbox" && objRef != inputList[i]) {
                    if (objRef.checked) {
                        //If the header checkbox is checked
                        //check all checkboxes
                        inputList[i].checked = true;
                    }
                    else {
                        inputList[i].checked = false;
                    }
                }
            }
        }

3)由于出现问题而导致的JS

<script src="assets/js/icheck.min.js"></script>
    <script>
        $(document).ready(function () {
            $('input').iCheck({
                checkboxClass: 'icheckbox_futurico',
                radioClass: 'iradio_futurico',
                increaseArea: '20%' // optional
            });
        });
</script>

如果我能得到一些帮助,那将是非常值得注意的。非常感谢提前大家。

2 个答案:

答案 0 :(得分:0)

对于您正在使用的插件,您必须使用以下语法检查所有框:

$('input').iCheck('check');

以下内容取消选中所有复选框:

$('input').iCheck('uncheck'); 

请参阅 DOCS 中的方法部分。

注意:如果check为默认复选框,则不会检查iCheck插件的复选框元素。

修改::

因此,在您的情况下,您可以添加点击处理程序并切换复选框:

$(document).on('click', '#checkAll' , function(){
      if($('input:checkbox:checked')) {
           $('input').iCheck('check');
      } else {
           $('input').iCheck('uncheck'); 
      }
});

答案 1 :(得分:0)

您需要在ready()功能中指定单选按钮:

 $(document).ready(function () {
        $('[type="checkbox"]').iCheck({
            checkboxClass: 'icheckbox_futurico',
            radioClass: 'iradio_futurico',
            increaseArea: '20%' // optional
        });
    });

此外,您可以在此处指定单选按钮的ID