jQuery全选反选插件,经易让你实现一个表单列表数据的全选与取消全选功能,内含示例,小巧实用。自动判断当前选中数量,加上全选。在没有jQuery之前,我们需要一大段js代码来实现这种效果。有了jQuery这个强大的库之后,我们可以很方便的开发实现这种效果的jQuery插件。我将它命名为jQuery.fn.check插件。前端框架分享
在构建我们的插件之前,我们想考虑一下其功能需求:
所有复选框的状态都随全选复选框的状态而发生变化;如果所有复选框都被选中时,全选复选框立即处于选中状态;如果当前选中复选框的数量小于复选框的总数时,全选复选框立即处于非选中状态; 所以,在那些处于全选复选框控制之下的复选框全被点击时,就需要时刻判断当前被选中复选框的个数,从而决定全选复选框是否被选中。
如有如下复选框:
<p><input type="checkbox" name="checkall" />全选</p> <p><input type="checkbox" name="check" />单选1</p> <p><input type="checkbox" name="check" />单选2</p> <p><input type="checkbox" name="check" />单选3</p>
jQuery全选返选插件及调用如下。前端框架分享
$(function () { //调用全选插件 $.fn.check({ checkall_name: "checkall", checkbox_name: "check" }) }); //全选插件 //checkall_name 操作全选的复选框name //checkbox_name 被操作的复选框的name name值可不统一 设置包含值 以XXX开头 自己修改 (function ($) { $.fn.check = function (options) { var defaults = { checkall_name: "checkall_name", //全选框name checkbox_name: "checkbox_name" //被操作的复选框name }, ops = $.extend(defaults, options); e = $("input[name='" + ops.checkall_name + "']"), //全选 f = $("input[name='" + ops.checkbox_name + "']"), //单选 g = f.length; //被操作的复选框数量 f.click(function () { $("input[name ='" + ops.checkbox_name + "']:checked").length == $("input[name='" + ops.checkbox_name + "']").length ? e.attr("checked", !0) : e.attr("checked", !1); }), e.click(function () { for (i = 0; g > i; i++) f[i].checked = this.checked; }); }; })(jQuery);