首页 > 作文

js判断单选框checkbox是否选中(详解checkbox选中和不选中)

更新时间:2023-04-05 10:04:49 阅读: 评论:0

多选框全选与全不选的实现

多选框全选与全不选是前端开发人员必学的案例了,这里完成了以下需求:

当用户勾上“全选”时,自动选中所有语言,并把“全选”变成“全不选”;当用户去掉“全不选”时,自动不选中所有语言;当用户点击“反选”时,自动把所有语言状态反转(选中的变为未选,未选的变为选中);当用户把所有语言都手动勾上时,“全选”被自动勾上,并变为“全不选唐山理工学院”;当用户手动去掉选中至少一种语言时,“全不选”自动被去掉选中,并变为“全选”。

网页代码部分如下:

<form id="test-form" action="test">  <legend>请选择想要学习的编程语言:</legend>  <fieldt>    <p>      <label class="lectall">        <input type="checkbox">        <span class="lectall">全选</span>        <span class="delectall">全不选</span>      </label>      <a href="#0" class="invertlect">反选</a></p>    <p><label><input type="checkbox" name="lang" value="javascript"> javascript</label></p>    <p><label><input type="checkbox" name="lang" value="python"> python</label></p>    <p><label><input type="checkbox" name="lang" value="ruby"> ruby</label></p>    <p><label><input type="checkbox" name="lang" value="haskell"> haskell</label></p>    <p><label><input type="checkbox" name="lang" value="scheme"> scheme</label></p>    <p>      <button type="submit">submit</button> 妄人   </p>  </fieldt></form>

先获取dom元素

var    form = $('#test-form'),    langs = form.find('[name=lang]'),    lectall = form.find('label.lectall :checkbox'),    lectalllabel = form.find('label.lectall span.lectall'),    delectalllabel = form.find('label.lectall span.delectall'),    invertlect = form.find('a.invertlect');

全选与全不选实现起来很简单,利用jquery对象的prop方法来设置选中状态,需要注意的是这里不能使用attr()方法:

 // 全选与全不选    lectall.on("change",()=>{      if(lectall.prop("checked")) {        //全选        langs.prop("checked",true)        lectalllabel.hide()        delectalllabel.show()       }el{        // 全不选        langs.prop("checked",fal)        lectalllabel.show()        delectalllabel.hide()       }           })

反选的方法也很简单:

        invertlect.on("click",()=>{   内分泌失调长痘痘   //jquery对象要先使用array.from方法转换成数组,利用数组来遍历      //需要注意的是,遍历的每一个元素是dom对象,而不是jquery对象了,      //不能再使用prop方法了      array.from(langs).foreach(item=>item.checked=!item.checked)     })

当用户把所有语言都手动勾上时,“全选”被自动勾上,并变为“全不选”。实现这个需求,需要让change事件绑定所有的name为lang的checkbox对象(langs),事件触发时,要遍历所有的langs,如果全部为选中状态,则“全选”自动勾上,并变为“全不选”。这里获取所有的选中状态的checkbox,可以使用 $(‘[name=lang]:checked’),代码如下:

  var langschecked = $('[name=lang]:checked')   //如果选中的checkbox数量大于等于5,即是全部选中  if(langschecked.length>=5){     //全选打勾    lectall.prop("check让人心寒的句子ed",true)    //全选标签隐藏    lectalllabel.hide()    //全不选标签显示    delectalllabel.show()   }el{    //全选去掉勾    lectall.prop("checked",fal)    //全选标签显示    lectalllabel.show()    //全不选标签隐藏    delectalllabel.hide()   }

为避免与之前的代码显示冲突,这里封装为一个方法,前面的代码也需要使用该方法,完整代码如下:

 $(function(){  var    form = $('#test-form'),    langs = form.find('[name=lang]'),    lectall = form.find('label.lectall :checkbox'),    lectalllabel = form.find('label.lectall span.lectall'),    delectalllabel = form.find('label.lectall span.delectall'),    invertlect = form.find('a.invertlect');    // 全选与全不选    lectall.on("change",()=>{      if(lectall.prop("checked")) {        //全选        langs.prop("checked",true)        lectalllabel.hide()        delectalllabel.show()       }el{        // 全不选        langs.prop("checked",fal)        lectalllabel.show()        delectalllabel.hide()       }      lect()     })    //反选    invertlect.on("click",()=>{      //jquery对象要先使用array.from方法转换成数组,利用数组来遍历      //需要注意的是,遍历的每一个元素是dom校园搞笑小品对象,而不是jquery对象了,      //不能再使用prop方法了      array.from(langs).foreach(item=>item.checked=!item.checked)      lect()     })    //当用户把所有语言都手动勾上时,“全选”被自动勾上,并变为“全不选”;        //当用户手动去掉选中至少一种语言时,“全不选”自动被去掉选中,并变为“全选”。    function lect(){      var langschecked = $('[name=lang]:checked')      console.log(langschecked)      //如果选中的checkbox数量大于等于5,即是全部选中      if(langschecked.length>=5){        lectall.prop("checked",true)        lectalllabel.hide()        delectalllabel.show()       }el{        lectall.prop("checked",fal)        lectalllabel.show()        delectalllabel.hide()       }     }    langs.change(lect)})

本文发布于:2023-04-05 10:04:48,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/ab1cc53861c93c45bbbb8a1448e2bb6e.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:js判断单选框checkbox是否选中(详解checkbox选中和不选中).doc

本文 PDF 下载地址:js判断单选框checkbox是否选中(详解checkbox选中和不选中).pdf

标签:全选   不选   遍历   对象
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图