背景:对一个列表中的所有数据的checkbox操作。通过一按钮的形式,对所有数据的checkbox全选后,并进行提交。
<ul class="main-menu" id="task"> <li class="nav-header hidden-tablet"><input type="checkbox" id="checkall" name="allCheckbox" onclick="checkAll(this);"><span>checkAll</span></li> <li><input type="checkbox" id="checkbox-1" name="checkbox"><span>checkbox1</span></li> <li><input type="checkbox" id="checkbox-2" name="checkbox"><span>checkbox2</span></li> <li><input type="checkbox" id="checkbox-3" name="checkbox"><span>checkbox3</span></li> <li><input type="checkbox" id="checkbox-4" name="checkbox"><span>checkbox4</span></li> <li><input type="checkbox" id="checkbox-5" name="checkbox"><span>checkbox5</span></li> </ul>
问题:第一次的全选没有问题,而当手动去除几个选项后,再点击按钮时,不能实现全选的操作了。
//按钮的全部提交 function submitAllByButton() { var p = parent.window.document; //获取父窗口的对象 var checkall = p.getElementById("checkall"); //在父窗口中的id,通过id获取该总checkbox if(!checkall.checked){ //如果总的选中checkbox没有选中状态,则进行选中 $(checkall).attr("checked", true); } var checkbox = p.getElementsByName("checkbox"); //获得各个分checkbox for(var i = 0 ; i < checkbox.length; i ++){ //循环,也可以用jquery的each var temp = checkbox[i]; if(!temp.checked) { //判断如果没有选中,则进行选中操作 $(temp).attr("checked", true); } } submit(); //最后是提交操作。 }
在这里不讨论业务实现逻辑的好坏。只是讲述当全部提交按钮再点击第二次的时候,不能对手动点选过的checkbox进行了操作。而且在上面代码里的循环里得到的选中结果,是"checked"也就是true。
这到底是怎么回事呢?为什么浏览器会返回给程序这个结果呢?在浏览器显示上明明已经是非“checked"状态。为什么程序得到的却是”checked“呢?
最后,我在jquery API 中找到了答案。
随着一些内置属性的DOM元素或window对象,如果试图将删除该属性,浏览器可能会产生错误。jQuery第一次分配undefined值的属性,而忽略了浏览器生成的任何错误
而在这之前我忽略了checkbox的状态显示,在我的项目里,它显示的两种状态分别是:”undefined“和"checked"
解决办法:
使用JQuery中的.prop()方法,我的修改后代码如下,把.attr换成.prop
//按钮的全部提交 function submitByAllButton() { var p = parent.window.document; var checkall = p.getElementById("checkall"); if(!checkall.checked){ $(checkall).prop("checked", true); } var checkbox = p.getElementsByName("checkbox"); for(var i = 0 ; i < checkbox.length; i ++){ var temp = checkbox[i]; if(!temp.checked) { $(temp).prop("checked", true); } } submit(); }
而上面的解释说明也是在jquery API中的prop方法里有写到。
相关推荐
在涉及到表单元素如复选框(Checkbox)时,经常需要实现全选、反选和全不选的功能。下面将详细探讨 jQuery 如何实现这些功能,以及如何进行表单验证。 1. **全选功能** 要实现全选功能,首先我们需要一个主复选框...
本文实例讲述了jQuery实现checkbox全选的方法。分享给大家供大家参考。具体分析如下: 通过checkbox 进行全选和取消全选的操作,如果通过toggle进行处理,则会出现checkbox无法显示对勾的问题。 使用click事件,根据...
### jQuery与JavaScript操作Checkbox全选反选 #### 一、引言 在Web开发中,Checkbox(复选框)是一种非常常见的用户界面元素,用于收集用户的多选输入。尤其是在表单设计时,Checkbox的全选与反选功能极大地方便了...
页面上通过一个checkbox实现全选与反选
在提供的文件“js实现checkbox全选,反选,全不选.htm”中,应当包含了上述功能的具体实现。通过查看源码,我们可以了解到实际的HTML结构以及jQuery脚本是如何与之配合的。这个文件可以作为一个示例,帮助我们更好地...
以上就是关于"CheckBox全选并删除"这个主题的相关知识点,涵盖了CheckBox全选的实现方式、删除操作的步骤、相关的ASP.NET控件属性和事件,以及在实际开发中需要注意的安全性、用户体验、性能优化等问题。
JQuery 判断checkbox是否选中,checkbox全选,获取checkbox选中值
在高级控件如DataGridView中,通过结合Checkbox可以实现全选和反选功能,为用户提供便捷的操作方式。这个经典例子将深入探讨如何在Web应用中实现这一功能。 1. **Checkbox基本概念** Checkbox是HTML中的一个表单...
### jQuery实现全选CheckBox功能详解 #### 背景与需求 在Web开发中,特别是在表单处理方面,经常会遇到需要实现多个复选框(CheckBox)的“全选”、“反选”等功能的需求。这样的功能不仅可以提升用户体验,还能...
jquery实现checkbox全选、反选、全部选,很不错的资源,欢迎大家下载学习var langType=""; var arLangType = []; $("[name='langType'][checked]").each(function(i) { arLangType[i]=$(this).val(); }); ...
在IT领域,特别是前端开发中,使用jQuery来操作DOM元素是一种常见的实践,特别是在处理复选框(checkbox)的全选与取消全选功能时。本文将深入解析如何使用jQuery实现这一功能,通过分析给定代码片段,提炼出关键...
"checkbox全选/取消全选以及checkbox遍历jQuery实现代码" CheckBox全选/取消全选是指在一个CheckBox组中...本例中我们使用jQuery实现了CheckBox全选/取消全选和CheckBox遍历的功能,提供了一个实际应用中的解决方案。
废话不多说了,直接给大家贴代码了,具体代码如下所示: <...jQuery实现CheckBox全选、全不选</title> [removed][removed] [removed] $(function() { $(':checkbox').click(function(evt)
在IT行业中,尤其是在Web开发领域,"checkbox全选,选中数据传到后台"是一个常见的功能需求。这个功能主要用于用户批量处理数据,如删除、修改等。以下是对这个主题的详细解析: 首先,我们需要理解标题中的关键词...
"JQ checkbox 全选和全不选"这个主题聚焦于jQuery如何实现复选框的选择功能,特别是全选和全不选的交互效果。这种功能常见于数据表格或列表的筛选中,允许用户一次性选择或取消选择所有项目。 首先,我们需要了解...
"jquery全选反选全不选案例" 是一个常见的交互功能,常见于表格或者列表中,允许用户一键选择或取消所有选项。这个功能在数据筛选、批量操作等场景下非常实用。 实现这一功能的关键在于理解 jQuery 中的选择器和...
本文将介绍如何利用jQuery库来实现复选框(checkbox)的全选全不选功能。jQuery是一个快速、简洁的JavaScript库,其设计的宗旨是使网页的JavaScript操作更加简单、高效,尤其在DOM操作方面。通过引入jQuery库,我们...
知识点一:使用jQuery实现checkbox全选和反选功能 1. jQuery是一种快速、小巧、功能丰富的JavaScript库,它封装了JavaScript常用的功能代码,极大地简化了JavaScript的开发。 2. checkbox全选和反选是web开发中常见...
"jquery通用全选并控制操作按钮"这个主题是关于利用jQuery实现一种常见的用户界面功能,即在表格或者列表中提供一个全选按钮,可以一键选择所有选项,同时根据选中项的数量来控制其他操作按钮的可见性或可用性。...
综上所述,本文通过详尽地阐述了使用jQuery实现checkbox全选的方法,提供了实现的背景和思路,详细介绍了开发过程中解决的关键问题,并通过具体的代码和示例,向读者展示了如何在实际开发中应用这一方法。