实现全选、反选的jquery

news/2024/7/11 1:04:16 标签: jquery, 全选
	//选中所有或反选所有的checkbox事件
	//调用方法时,传入当前checkbox状态
	function selectAll(checkedValue){
		$(".checkChildren").prop("checked",checkedValue);	
	}
	
	//当一个个点 子checkbox 的时候,检验全选的checkbox是否需要选中或取消
	function docheck(){
		if(!$(".checkChildren").checked){
			$("#selectAll").prop("checked",false);
		}
		//所有的 子checkbox 的总个数
		var chsub = $(".checkChildren").length;
		//被选中的 子checkbox 的个数
		var checkedsub = $("input[type='checkbox'][class='checkChildren']:checked").length;
		
		if(checkedsub == chsub){
			$("#selectAll").prop("checked",true);
		}
	}

jQuery从1.6版本开始,checked属性在也页面初始化的时候已经初始化好,不会随状态改变而改变。

  • 一开始是选中,则永远是checked
  • 一开始未选中,则永远是undefined

但jQuery使用.prop()解决了此问题:

alert($("#checkbox_all").prop("checked"));
//结果才是true或者false
//使用attr只会是checked或者undefined

做这个功能的时候,发现按钮没有效果,经过更改,将function selectAll的名字改掉即可生效,猜测应该是占用保留字的缘故。因此下面附完整JSP代码。


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>用户列表</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script language="javascript" src="${pageContext.request.contextPath}/script/jquery.js"></script>
    <script language="javascript" src="${pageContext.request.contextPath}/script/pageCommon.js" charset="utf-8"></script>
    <script language="javascript" src="${pageContext.request.contextPath}/script/PageUtils.js" charset="utf-8"></script>
    <script language="javascript" src="${pageContext.request.contextPath}/script/DemoData.js" charset="utf-8"></script>
	<script language="javascript" src="${pageContext.request.contextPath}/script/DataShowManager.js" charset="utf-8"></script>
    <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath}/style/blue/pageCommon.css" />
    <script type="text/javascript">
    
    function xuanze(ck){
		$(".checkChildren").prop("checked", ck);
	}
	 
    function docheck(){
    	if (!$(".checkChildren").checked) {  
            $("#selectAll").prop("checked", false);  
        }  
        var chsub = $(".checkChildren").length; //获取subcheck的个数  
        var checkedsub = $("input[type='checkbox'][class='checkChildren']:checked").length; //获取选中的subcheck的个数  
        if (checkedsub == chsub) {  
            $("#selectAll").prop("checked", true);  
        }  
    } 
    </script>
    
   
</head>
<body>
<div id="Title_bar">
    <div id="Title_bar_Head"> 
        <div id="Title_Head"></div>
        <div id="Title"><!--页面标题-->
            <img border="0" width="13" height="13" src="${pageContext.request.contextPath}/style/images/title_arrow.gif"/> 用户管理
        </div>
        <div id="Title_End"></div>
    </div>
</div>

<div id="MainArea">
        <!-- 条件查询 -->
        
        	<form action="${pageContext.request.contextPath}/user/find" method="post">
            	用户名:<input name="findName"/>&nbsp;态:<input name="findStatus"/>
            	<input type="submit" value="搜索"/>
        	</form>
        	<form action="${pageContext.request.contextPath}/user/del" method="post">
	    		<input type="submit" value="删除"/>
        	 <table cellspacing="0" cellpadding="0" class="TableStyle">
<%-- 	       	 <button onclick="window.location.href = '${pageContext.request.contextPath}/user/del'"> 删除--%>
	    <!-- 条件查询 -->
            <tr align=center valign=middle id=TableTitle>
                <td width="100">登录名</td>
                <td width="100">密码</td>
                <td width="100">用户名</td>
                <td width="80">状态</td>
                <td width="250">创建时间</td>
                <td width="100">修改</td>
                <td>全选<input type="checkbox" onclick="xuanze(this.checked)" id="selectAll"/></td>
            </tr>
        <!--显示数据列表-->
        	<tbody id="TableData" >
        
         	<c:forEach items="${pageBean.recordList}" var="s">
              <tr class="TableDetail1 template">
                <td>${s.loginname}&nbsp;</td>
                <td>${s.password }&nbsp;</td>
                <td>${s.username }&nbsp;</td>
                <td>${s.status }&nbsp;</td>
                <td>${s.createdate }&nbsp;</td>
                <td><a href="${pageContext.request.contextPath}/user/updateUI?id=${s.id}">修改</a>&nbsp;</td>
                <td><input type="checkbox" name="deleteArray"  value="${s.id}"  class="checkChildren" onclick="docheck()">&nbsp;</td>
         	</c:forEach>
         	</tbody>
	    </table>
	    </form>
</div>

	<div id=PageSelectorMemo>
		页次:${pageBean.currentPage}/${pageBean.pageCount }&nbsp;
		每页显示:${pageBean.pageSize }&nbsp;
		总记录数:${pageBean.recordCount }</div>
		<a href="javascript: gotoPage(1)" title="首页" style="cursor: hand;">
			<img src="${pageContext.request.contextPath}/style/blue/images/pageSelector/firstPage.png"/>
		</a>
		<c:forEach begin="${pageBean.beginPageIndex }" end="${pageBean.endPageIndex }" var="num">
			${num }
		</c:forEach>
		<a href="javascript: gotoPage(${pageBean.pageCount})" title="尾页" style="cursor: hand;">
			<img src="${pageContext.request.contextPath}/style/blue/images/pageSelector/lastPage.png"/>
		</a>
<script type="text/javascript">
	function gotoPage(pageNum ){
		window.location.href = "${pageContext.request.contextPath}/user/show?currentPage=" + pageNum;
	}
 </script>

</body>
</html>


http://www.niftyadmin.cn/n/1301538.html

相关文章

关于缓存服务器的理解

在上一篇文章浏览器缓存机制中&#xff0c;有提到缓存代码服务器&#xff0c;对于这方面并没有了解到&#xff0c;所以想要学习一下。 于是看到了这样一篇文章。 缓存服务器介绍无论企业有多大&#xff0c;缓存服务器都有助于优化性能和节省宽带。而且如果选择了正确的缓存解决…

JS实现继承的几种方式

文章转载自&#xff1a;http://www.cnblogs.com/humin/p/4556820.html 前言 JS作为面向对象的弱类型语言&#xff0c;继承也是其非常强大的特性之一。那么如何在JS中实现继承呢&#xff1f;让我们拭目以待。 JS继承的实现方式 既然要实现继承&#xff0c;那么首先我们得有一…

如何避免servlet多线程安全

实现SingleThreadModel接口同步对共享数据的操作避免使用实例变量

c++虚函数和纯虚函数的区别

关于虚函数的定义是&#xff1a;被virtual关键字修饰的成员函数。 关于纯虚函数的定义是&#xff1a;是一种特殊的虚函数&#xff0c;在许多情况下&#xff0c;在基类中不能对虚函数给出有意义的实现&#xff0c;把它声明为纯虚函数&#xff0c;它的实现留给该基类的派生类去做…

404排查总结(struts2)

静态页面&#xff08;JSP或freemarker等模板&#xff09;的URL是否写错&#xff1a;URI、通配符、方法名、action、拼写等问题 控制层&#xff1a;Action的方法名、返回值、注解&#xff08;Controller Scope(“prototype”)&#xff09; struts.xml: 中的通配符、路径、name等…

springMVC注解——@RequestMapping

ControllerRequestMapping(value"/user")public class UserController{RequestMapping("/register")public String register(){return "register";}RequestMapping("/login")public String login(){return "login";}}由于Us…

SpringMVC——请求处理方法的参数类型和返回值类型

参数类型 javax.servlet.ServletRequest或javax.servlet.http.HttpServletRequest javax.servlet.ServletRespose或javax.servlet.http.HttpServletRespose javax.servlet.http.HttpSession org.springframework.web.context.request.WebRequest 或 org.springframework.web.c…

SpringMVC——Model和ModelMap

ModelAttribute修饰的userModel方法会先与login调用&#xff0c;它把请求参数值赋给对应变量&#xff0c;可以向方法中的Model添加对象&#xff0c;前提是要在方法签名中加入一个Model类型的参数