使用jQuery完成表单验证,实现全选、全不选、反选以及提交事件

在这里插入图片描述

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<form>
			你爱好的运动是?<input type="checkbox" id="checkAllBox" />全选/全不选
			<br/>
			<input type="checkbox" name="items" id="" value="足球" />足球
			<input type="checkbox" name="items" id="" value="" />篮球
			<input type="checkbox" name="items" id="" value="" />羽毛球
			<input type="checkbox" name="items" id="" value="" />乒乓球
			<br>
			<button type="button" id ="checkAllBtn">全选</button>
			<button type="button" id = "checkNoBtn">全不选</button>
			<button type="button" id ="checkRevBtn">反 选</button>
			<button type="button" id ="sendBtn">提交</button>
			<!-- <input type="submit" value=""/> -->
		</form>
		
		<script src="js/jQuery.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			$(function(){
				// 获取全选/全不选复选框
				var $checkAllBox = $('#checkAllBox');
				// var $checkNoBox = $('#checkNoBox');
				// 获取所有爱好按钮
				var $items = $(':checkbox[name = items]');
				// var $items = $('#items')
				// 事件:点击全选按钮,各种球类复选框,点击就选中
				$('#checkAllBtn').click(function(){
					// $items.checked = 'checked';
					$items.prop('checked',true);
					$checkAllBox.prop('checked',true);
				});
				// 全不选事件
				$('#checkNoBtn').click(function(){
					$items.prop('checked',false);
					$checkAllBox.prop('checked',false);
				});
				// 事件 反选按钮
				$('#checkRevBtn').click(function(){
					$items.each(function(){
						this.checked = !this.checked;
					})
					// 定义一个变量用来记录选中数量,如果全部选中,则复选框勾选;反之,取消复选框勾选
					var checkedLength = $items.filter(':checked').length;//filter 根据选择器,获取已有的jQuery对象
					console.log(checkedLength);
					/* if(checkedLength == $items.length){
						// $checkAllBox.checked = !$checkAllBox.checked;
						$checkAllBox.prop('checked',true);
					}else if(checkedLength == 0){
						$checkAllBox.prop('checked',false);
					} */
					$checkAllBox.prop('checked',$items.filter(':checked').length == $items.length);
					$checkAllBox.prop('checked',$items.filter(':not(:checked)').length == 0);
				})
				// 全选/全不选选框事件 
				// 遍历选中的爱好,如果选中的爱好数量等于爱好总数量,则复选框勾选;如果选中的爱好数量为0,则不勾选复选框
				$items.click(function(){
					$checkAllBox.prop('checked',$items.filter(':checked').length == $items.length);
					$checkAllBox.prop('checked',$items.filter(':not(:checked)').length == 0);
				})
			
				// 提交事件 点击sentBtn按钮,根据过滤选择器,选出选中的按钮,然后遍历它们,最后输出这些值
				$('#sendBtn').click(function(){
					$items.filter(':checked').each(function(){
						alert(this.value);
					})
				})
			});

		</script>
	</body>
</html>

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值