一、问题

  在用复选框的时候,最常用的无非就是全选,全不选,数据回显等问题!要做的比较灵活!最近做项目的时候,就遇到这些问题,下面从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. Java进行spark计算

    首先在Linux环境安装spark: 可以从如下地址下载最新版本的spark: https://spark.apache.org/downloads.html 这个下载下来后是个tgz的压缩包,解压后 ...

  2. LR脚本记录

    1. 打印出: the value  is+"参数值" lr_output_message("the value  is",lr_eval_string(&qu ...

  3. IDEA试用期结束以后继续试用(全部失效就更新),IDEA 2018 LICENSE SERVER

    IDEA是一款收费的IDE,但是新用户可以免费试用一段时间,试用期结束可以购买,也可以通过填写License server address来继续使用. 打开IDEA以后,通过Help ----- Re ...

  4. 原生态JDBC问题的总结

    package com.js.ai.modules.aiyq.testf; import java.sql.Connection; import java.sql.DriverManager; imp ...

  5. predict.glm -> which class does it predict?

    Jul 10, 2009; 10:46pm predict.glm -> which class does it predict? 2 posts Hi, I have a question a ...

  6. django-引用静态文件

    1.需要配置settings # 静态文件目录 STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static') 2.页面加载静态文件 {% load sta ...

  7. 几种查询方法(lambda Linq Enumerable静态类方式)

    1.需要一个数据源类: using System; using System.Collections.Generic; namespace Linq { public class Student { ...

  8. 535. Encode and Decode TinyURL

    ▶ 要求给出一种对 URL 网址进行压缩和解压的算法,例如 https://leetcode.com/problems/design-tinyurl ←→ http://tinyurl.com/4e9 ...

  9. 方便好使的java.util.Properties类

    今天偶然碰到这个类,发现jdk中这些平时不大用到的类还挺好玩儿的,用起来也特别实在方便,随便写点记录下. java.util.Properties是对properties这类配置文件的映射.支持key ...

  10. How to create a site with AJAX enabled in MVC framework.

    How to create a site with AJAX enabled in MVC framework. The Project illustrates how to create a web ...