博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jquery iCheck的全选和获取value
阅读量:7069 次
发布时间:2019-06-28

本文共 2679 字,大约阅读时间需要 8 分钟。

  jQuery iCheck 插件提供高度可定制的复选框和单选按钮(jQuery和Zepto)。最新版本1.0.2,有个最新的2.0预览版,但是发布之后没有再更新。

  特点:在不同的浏览器和设备(桌面和移动)一致的输入体验,触摸设备支持(iOS、Android、Windows Phone、黑莓、亚马逊的Kindle),键盘可输入(制表符,空格键,向上或向下键和其他快捷键),屏幕阅读器可以输入(画外音和其他属性,定制的咏叹调)自由(使用任何HTML和CSS样式输入或尝试6视网膜准备皮),体积轻巧(1 KB的压缩包)。

  提供32个选项自定义复选框和单选按钮,11回调处理变化,以编程方式更改的9种方法。保存对原始输入的更改,和各种选择器一起紧密的工作。

  官方地址:http://plugins.jquery.com/icheck/

  演示地址:http://icheck.fronteed.com/

  开源地址:https://github.com/fronteed/iCheck

  中文文档:http://www.bootcss.com/p/icheck/

一、全选

在使用jQuery iCheck 插件的时候遇到了一个问题,就是当我们使用普通的js全选功能无效了。

$("#checkall").click(        function(){            if(this.checked){                $("input[name='checkname']").each(function(){
this.checked=true;}); }else{ $("input[name='checkname']").each(function(){
this.checked=false;}); } } );

这样来写对默认的checkbox框没问题,但是当使用iCheck 插件后将无效。

那么该怎么解决呢?

最后是在stackoverflow 找到的解决方法:

地址是这里: 

//全选获取数值    var checkAll = $('input.all');    var checkboxes = $('input.check');    checkAll.on('ifChecked ifUnchecked', function(event) {        if (event.type == 'ifChecked') {            checkboxes.iCheck('check');        } else {            checkboxes.iCheck('uncheck');        }    });    checkboxes.on('ifChanged', function(event){        if(checkboxes.filter(':checked').length == checkboxes.length) {            checkAll.prop('checked', 'checked');        } else {            checkAll.removeProp('checked');        }        checkAll.iCheck('update');    });

 

二、获取选中值

在解决了全选问题后,又遇到了一个新的问题,获取选中的checkbox的value的时候,使用:$(this).attr('checked');获取不到值了~,蛋疼。

最后几经Google搜索,还是在stackoverflow 找到了启发,判断checkbox的布尔值,使用 :$(this).is(':checked');

最后代码的解决方法如下:

$(".ajax-delete").click(function(){    var url = $(this).attr('data-url');    var str="";    var ids="";    $("input[name='id']:checkbox").each(function(){        if(true == $(this).is(':checked')){            str+=$(this).val()+",";        }    });    if(str.substr(str.length-1)== ','){        ids = str.substr(0,str.length-1);    }    console.log(ids);});

 

延伸:

1.判断已选中的个数/长度

var len = $("input[name='id']:checkbox").length;

 

三、radio

问题: 同时可选中多个值

解决: 设置同一范围内的选项的name一致,原因是由于个别选项单独处理而没有设置name

 

四、个人使用的封装代码

 

/*iCheck*///初始化function iCheckInit() {    $('.i-checks').iCheck({        checkboxClass: 'icheckbox_square-green',        radioClass: 'iradio_square-green',    });}//选中数量function selectedCount(name) {    return $("input[name='" + name + "']:checked").length;}//全选function selectAll(name) {    $('input[name="' + name + '"]').iCheck('check');}//全不选function selectNone(name) {    $('input[name="' + name + '"]').iCheck('uncheck');}

 

 

来自:http://www.tuicool.com/articles/aANRBv

官网:http://www.bootcss.com/p/icheck/

 

转载地址:http://zfhll.baihongyu.com/

你可能感兴趣的文章
html5: 新特性(一)
查看>>
屏幕尺寸,分辨率,像素,PPI之间到底什么关系?
查看>>
Java输入输出流练习
查看>>
Redis中的批量删除数据库中的Key
查看>>
Docker 安装部署
查看>>
一种增加图像自然饱和度的方法
查看>>
布尔类型
查看>>
MusicPlayer
查看>>
eclipes安装ADT错误处理
查看>>
Java 中的System.exit
查看>>
学习SpringMVC——你们要的REST风格的CRUD来了
查看>>
Java:输入输出流 java.io包的层次结构
查看>>
阿里云服务API的试用
查看>>
【MySQL 忘记密码】MySQL忘记密码怎么解决 mysql5.5 windows7
查看>>
JavaScript 的基础学习(一)
查看>>
360周鸿祎:你能不能像打游戏一样干工作?
查看>>
剑法三套,程序员也能赚大钱(3) 转
查看>>
Django 信号
查看>>
NLPIR数据语义挖掘技术为企业提供精准管理
查看>>
[Istio]Kubernetes集群部署Istio 1.0
查看>>