一、问题

  在用复选框的时候,最常用的无非就是全选,全不选,数据回显等问题!要做的比较灵活!最近做项目的时候,就遇到这些问题,下面从js和JQueyr两方面解决一下全选,全不选,数据回显的问题。

二、HTML页面

     <input type="checkbox" id="checkAll"/>全选<br>
<input type="checkbox" name="media" value="100" />新闻
<input type="checkbox" name="media" value="1001" />微信
<input type="checkbox" name="media" value="200" />论坛
<input type="checkbox" name="media" value="300" />问答
<input type="checkbox" name="media" value="1400" />博客
<input type="checkbox" name="media" value="400" />平媒
<br>
<input type="submit" value="添加">

三、JQueyr实现全选,全不选,数据回显

     <script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
//点击全选的判断
$("#checkAll").click(function(){
//看全选 是否被选中
var ischeckAll =$(this).attr("checked");
var checkBoxAll = $("input[name='media']");
if(ischeckAll=="checked"){
//全部选中
$.each(checkBoxAll,function(i,checkbox){
$(checkbox).attr("checked",true);
});
}else{
//全不选
$.each(checkBoxAll,function(i,checkbox){
$(checkbox).attr("checked",false);
});
} }); //点击新闻,微信,论坛,问答,博客,平媒,等的判断
$("input[name='media']").click(function(){
//得到选中的长度
var array=$("input[name='media']:checked").length;
//如果等于6,说明全部被选中,那么全选多选框也要被选中
//如果不等于6,说明全部都没选,那么全选的多选框也要被取消
if(array==6){
$("#checkAll").attr("checked",true);
}else{
$("#checkAll").attr("checked",false);
}
});
});
</script>

注意:引入jquery的js

数据的回显说明一下,数据的回显,最长用到的地方是更新,当你更新的时候,你得把更新前的数据显示到页面中,所以,最好是在页面加载完成的时候,然后,调用window.onload方法,使数据回显到页面!一般我们存储多选框的值的时候,是以逗号隔开的字符串进行存储的,例如:100,1001,1002,1004等,然后,我们可能会把值放到一个隐藏域中,以供在js中调用!本例,我们把值放到一个隐藏域中,然后,在js中调用

         <input type="checkbox" id="checkAll"/>全选<br>
<input type="checkbox" name="media" value="100" />新闻
<input type="checkbox" name="media" value="1001" />微信
<input type="checkbox" name="media" value="200" />论坛
<input type="checkbox" name="media" value="300" />问答
<input type="checkbox" name="media" value="1400" />博客
<input type="checkbox" name="media" value="400" />平媒
<br>
<input type="hidden" value="100,1001,200,1400" id="meidaHidden">
<input type="submit" value="添加">
 $(function(){

             //当页面加载完成的时候,自动调用该方法
window.onload=function(){
//获得所要回显的值,此处为:100,1001,200,1400
var checkeds = $("#meidaHidden").val();
//拆分为字符串数组
var checkArray =checkeds.split(",");
//获得所有的复选框对象
var checkBoxAll = $("input[name='media']");
//获得所有复选框(新闻,微信,论坛,问答,博客,平媒)的value值,然后,用checkArray中的值和他们比较,如果有,则说明该复选框被选中
for(var i=0;i<checkArray.length;i++){
//获取所有复选框对象的value属性,然后,用checkArray[i]和他们匹配,如果有,则说明他应被选中
$.each(checkBoxAll,function(j,checkbox){
//获取复选框的value属性
var checkValue=$(checkbox).val();
if(checkArray[i]==checkValue){
$(checkbox).attr("checked",true);
}
})
} //全选多选框的回显
var array=$("input[name='media']:checked").length;
//如果等于6,说明全部被选中,那么全选多选框也要被选中
//如果不等于6,说明全部都没选,那么全选的多选框也要被取消
if(array==6){
$("#checkAll").attr("checked",true);
}else{
$("#checkAll").attr("checked",false);
} };
});

四、JavaScript实现全选,全不选,数据回显

  html页面的设计:

 <input type="checkbox" id="all" onclick="checkAll(this)"/>全选<br>
<input type="checkbox" id="check01" name="media" value="100" onclick="check(this)" />新闻
<input type="checkbox" id="check01" name="media" value="1001" onclick="check(this)" />微信
<input type="checkbox" id="check03" name="media" value="200" onclick="check(this)"/>论坛
<input type="checkbox" id="check04" name="media" value="300" onclick="check(this)"/>问答
<input type="checkbox" id="check05" name="media" value="1400" onclick="check(this)" />博客
<input type="checkbox" id="check06" name="media" value="400" onclick="check(this)"/>平媒
<br>
<input type="hidden" value="100,1001,200,300,1400,400" id="meidaHidden">
<input type="submit" value="添加">

  js中的设计:

 <script type="text/javascript">
var number=0;
//单击全选
function checkAll(checkBoxAll){
var elements = document.getElementsByName("media");
if(checkBoxAll.checked){
//全选
for(var i=0;i<elements.length;i++){
var ele = elements[i];
ele.checked=true;
}
number=6;
}else{
//全不选
for(var i=0;i<elements.length;i++){
var ele = elements[i];
ele.checked=false;
}
number=0;
}
}; //点击新闻,微信,论坛,问答,博客,平媒,等的判断
function check(checkbox){
if(checkbox.checked){
number++;
}else{
number--;
} //如果长度为6,那么全选复选框选中,否则不选
var cBoxAll = document.getElementById("all");
if(number==6){
cBoxAll.checked=true;
}else{
cBoxAll.checked=false;
}
};
</script>

  js中数据的回显,通JQuery一样,在window.onload中添加

  

checkbox数据回显问题的更多相关文章

  1. HTML、jsp页面中radio,checkbox,select数据回显功能,默认被选中问题

    最近常常遇到各种复选框.单选框.下拉框的默认被选中的问题,开始也是绞尽脑汁的想办法,今天写一篇学习总结的博文来写一下学习总结. 单选框(radio)默认被选中: 一.jstl技术进行回显 <in ...

  2. SpringMVC(三) —— 参数绑定和数据回显

    参数绑定的过程:就是页面向后台传递参数,后台接受的一个过程. 默认支持的参数类型:(就是你在方法上以形参的形式去定义一下的类型,就可以直接使用它) HttpServletRequest HttpSer ...

  3. 二十 Struts2的标签库,数据回显(基于值栈)

    通用标签库 判断标签:<s:if>.<s:elseif>.<s:else> 循环标签:<s:iterator> 其他常用标签: <s:proper ...

  4. SpringMVC学习--数据回显

    简介 表单提交失败需要再回到表单页面重新填写,原来提交的数据需要重新在页面上显示. 简单数据类型 对于简单数据类型,如:Integer.String.Float等使用Model将传入的参数再放到req ...

  5. 表单很多数据项录入的时候,提交controller发生异常,数据回显。

    1.添加的情况(Model传递Form Data) request.getSession().setAttribute("car", car); //抛出异常的时候,数据回显. 2 ...

  6. SpringMVC第五篇【方法返回值、数据回显、idea下配置虚拟目录、文件上传】

    Controller方法返回值 Controller方法的返回值其实就几种类型,我们来总结一下-. void String ModelAndView redirect重定向 forward转发 数据回 ...

  7. Struts2第十一篇【简单UI标签、数据回显】

    Struts2UI标签 Sturts2为了简化我们的开发,也为我们提供了UI标签-也就是显示页面的标签-.. 但是呢,Struts2是服务端的框架,因此使用页面的标签是需要在服务器端解析然后再被浏览器 ...

  8. SpringMVC【参数绑定、数据回显、文件上传】

    前言 本文主要讲解的知识点如下: 参数绑定 数据回显 文件上传 参数绑定 我们在Controller使用方法参数接收值,就是把web端的值给接收到Controller中处理,这个过程就叫做参数绑定.. ...

  9. Struts2【UI标签、数据回显、资源国际化】

    Struts2UI标签 Sturts2为了简化我们的开发,也为我们提供了UI标签...也就是显示页面的标签..... 但是呢,Struts2是服务端的框架,因此使用页面的标签是需要在服务器端解析然后再 ...

随机推荐

  1. TestCase和TestSuite详解

    一.TestCast和TestSuite概念介绍 TestCase:字面意思,测试用例.为一个或多个方法提供测试方法,一般是一个test. TestSuite:测试集合,即一组测试.一个test su ...

  2. [C++ Primer] 第3章: 字符串, 向量和数组

    标准库类型string string初始化 string s2(s1); string s2 = s1; string s3("value"); string s3 = " ...

  3. css用法大全

    direction:控制文本方向 ltr:默认.文本方向从左到右. rtl:文本方向从右到左. inherit:规定应该从父元素继承 direction 属性的值. <select name=& ...

  4. Jenkins构建Python项目提示:'python' 不是内部或外部命令,也不是可运行的程序

    问题描述: jenkin集成python项目,立即构建后,发现未执行成功,查看Console Output 提示:'Python' 不是内部或外部命令,也不是可运行的程序,如下图: 1.在 Windo ...

  5. python操作excel表格文件--使用xlrd模块

    原文: http://www.cnblogs.com/lhj588/archive/2012/01/06/2314181.html 引言: 实际工作中,可能很多情况下都会用到excel表格,像如果不需 ...

  6. 读书笔记--Linux Shell脚本攻略

    总结的来说,这本书很实践性和实用性强,都是给的具体的例子,直接可以在终端操作实践,比单纯只看不动手务实多了,另外就是,这本书涵盖的内容也比较广,从文本操作到服务器管理到远程ssh等等,都给出来作者挑选 ...

  7. AWS安装

    curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" sudo python get-pip. ...

  8. DevExpress之XtraReport 学习

    XtraReport 一.基本概念: XtraReports 中的每个报表都由 XtraRepot 类的一个实例表示,或者由该类的子类来表示(这种情况更常见). 因此,每个报表都作为带区的容器使用,而 ...

  9. C#中遍历各类数据集合的方法总结

    C#中遍历各类数据集合的方法总结: 1.枚举类型 //遍历枚举类型Sample的各个枚举名称 foreach (string sp in Enum.GetNames(typeof(Sample))) ...

  10. window.location 属性

    属性 含义 值 protocol: 协议 "http:" hostname: 服务器的名字 "b.a.com" port: 端口 "88" ...