jQuery 使用jQuery操作表单和表格

使用jQuery操作表单和表格

1、HTML表单概述

2、使用jQuery操作表单元素

操作文本框

1、获取文本框的值(两种方法):

	var textCon = $("#id").val();
	var textCon = $("#id").attr("value");

2、设置文本框的值,可以使用attr()方法:

	$("#id").attr("value","要设定的值");

3、设置文本框不可编辑的方法:

	$("#id").attr("disabled","disabled");

4、设置文本框可编辑的方法:

	$("#id").removeAttr("disabled");

【例】获取文本框的值以及切换编辑状态

		<input type="text" id="testInput"/>
		<input type="submit" value="提交" name="tj" id="tj"/>
		<input type="button" value="修改" name="xg" id="xg"/>
		<script type="text/javascript">
			$(document).ready(function(){
				$("#tj").click(function(){
					if($("#testInput").val() != ""){
						alert($("#testInput").val());	//弹出文本框的值
						$("#testInput").attr("disabled","disabled");//将文本框变为不可编辑状态
					}else{
						alert("请输入文本内容!")
						$("testInput").focus();			//将焦点设置到文本框处
						return false;
					}
				});
				$("#xg").click(function(){
					if($("#testInput").attr("disabled") == "disabled"){
						$("#testInput").removeAttr("disabled");			//移除文本框的disabled属性
					}
				});
			})
		</script>
操作文本域

文本域的属性设置、值的获取以及编辑状态的修改与文本框都相同。所以在此不做过多赘述。

操作单选按钮和复选框

1、使用attr()方法可以设置选中的单选框和复选框:

	$("#id").attr("checked",true);

2、取消选中单选按钮和复选框:

	$("#id").removeAttr("checked");

3、判断选择状态

	if($("#id").attr("checked")=='checked'){
	}

【例】使用按钮控制单选框的选中状态

		<form>
			<h3 align="center">选择你喜欢的运动</h3>
			<input type="checkbox" name="hobby" value="游泳" />游泳
			<input type="checkbox" name="hobby" value="足球" />足球
			<input type="checkbox" name="hobby" value="篮球" />篮球
			<input type="checkbox" name="hobby" value="滑冰" />滑冰
			<input type="checkbox" name="hobby" value="滑雪" />滑雪
			<input type="checkbox" name="hobby" value="羽毛球" />羽毛球
			<input type="checkbox" name="hobby" value="乒乓球" />乒乓球<br /><br />
			<input type="button" id="checkAll" value="全选"/>&nbsp;
			<input type="button" id="unCheckAll" value="全不选" />&nbsp;
			<input type="button" id="revBtn" value="反选" />&nbsp;
			<input type="button" id="subBtn" value="提交" />&nbsp;
		</form>
	<script type="text/javascript">
		$(document).ready(function(){
			$("#checkAll").click(function(){
				$("input[type=checkbox]").attr("checked",true);
			})
			$("#unCheckAll").click(function(){
				$("input[type=checkbox]").removeAttr("checked");
			})
			
			$("#revBtn").click(function(){
				$("input[type=checkbox]").each(function(){
					this.checked = !this.checked;
				});
			})
			$("#subBtn").click(function(){
				var msg = "你最喜欢的运动是:\r\n";
				$("input[type=checkbox]:checked").each(function(){
					msg+=$(this).val()+"\r\n";
				});
				alert(msg);
			})
		})
	</script>
操作下拉框

1、读取下拉框的值

	var selVal = $("#id").val();

2、设置下拉框的选中项

	$("#id").attr("value",选中项的值);

3、清空下拉菜单

	if($("#id")).empty();

4、向下拉菜单中添加菜单项

if($("#id").append("<option value='值'>文本</option>"));

【例】jQuery操作下拉框

		<div class="first">
			<select multiple name="hobby" id="hobby" class="sel">
				<option value="游泳">游泳</option>
				<option value="足球">足球</option>
				<option value="篮球">篮球</option>
				<option value="跑步">跑步</option>
				<option value="滑冰">滑冰</option>
				<option value="乒乓球">乒乓球</option>
				<option value="游泳">游泳</option>
				<option value="跳远">跳远</option>
				<option value="跳高">跳高</option>
			</select>
			<div class="sd">
				<button id="add">添加>></button><br /><br />
				<button id="add_all">添加全部>></button>
			</div>
		</div>
		<div class="second">
			<select multiple name="other" id="other" class="sel"></select>
			<div class="sd">
				<button id="to_left"><<删除</button><br /><br />
				<button id="all_to_left"><<全部删除</button>
			</div>
		</div>
	<style type="text/css">
		.first{
			float:left;
			font-size:12px;
		}
		.second{
			padding-left:110px;
			font-size:12px;
		}
		.sel{
			width:80px;
			height:150px;
		}
		.sd{
			padding-top:10px;
		}
	</style>
	<script type="text/javascript">
		$(document).ready(function(){
			$("#add").click(function(){
				var $options = $("#hobby option:selected");		//获取左边选中项
				$options.appendTo("#other");					//追加到右边
			})
		$("#add_all").click(function(){
				var $options = $("#hobby option");				//获取全部选项
				$options.appendTo("#other");					//追加到右边
			})
		$("#hobby").dblclick(function(){					//鼠标双击事件
			var $options = $("option:selected",this);		//获取选中项
			$options.appendTo("#other");					//追加到右边
		})
		$("#to_left").click(function(){
			var $options = $("#other option:selected");		//获取右边选中项
			$options.appendTo("#hobby");					//追加到左边
		})
		$("#all_to_left").click(function(){
			var $options = $("#other option");				//获取全部选项
			$options.appendTo("#hobby");					//追加到左边
		})
		$("#other").click(function(){						//鼠标双击事件
			var $options = $("option:selected",this);		//获取选中项
			$options.appendTo("#hobby");					//追加到左边
		})
		})
	</script>
表单验证

在这里插入图片描述
要实现如上效果,用户名、密码不能为空,且密码不能少于8位。
1、首先写html代码

		<form>
			<h3 align="center">用户注册</h3>
			<div class="dt">用户名:<input type="text" name="username" id="username" class="required" size=20/></div>
			<div class="dt">&nbsp;&nbsp;码:<input type="password" name="pwd" id="pwd" class="required" size=20/></div>
			<div class="dt">&nbsp;&nbsp;别:<input type="text" name="sex" id="sex" maxlength=3 size=4/></div>
			<div class="dt">&nbsp;&nbsp;龄:<input type="text" name="age" id="age" maxlength=3 size=4/></div>
			<div class="dt">
				<input type="submit" name="sub" value="注册" />
			</div>
		</form>
	</body>

2、给form表单下的input元素的样式为required的元素添加一个红色的“*”,表示必填。当光标移开用户名或密码时触发blur()事件,用blur()事件判断用户名和密码不能为空。

	<script type="text/javascript">
		$(document).ready(function(){
			$("form :input.required").each(function(){
				var $required = $("<strong class='star'>*</strong>");//创建元素
				$(this).parent().append($required);					//将其追加到文档中
			}) 
			$("form :input").blur(function(){
				if($(this).is("#username")){//判断元素id是否为用户名的文本框
					if($(this).val()==""){//判断用户名为空
					alert("用户名不为空!");
					}
				}
				if($(this).is("#pwd")){//判断是否为密码框
					if($(this).val()==""){//判断密码是否为空
					alert("密码不为空");
					}
					if(this.value.length<8){//判断密码是否小于8位
						alert("密码不能小于8位,请重新输入!");
					}
				}
			})		
		})
	</script>

3、CSS样式

	<style type="text/css">
		.star{
			color:red;
		}
		.dt{
			padding-top:10px;
		}
	</style>

使用jQuery操作表格

控制表格颜色显示

1、隔行换色

	$("tr:odd").addClass("odd");	//为表格奇数行添加样式
	$("tr:even").addClass("even");	//为表格偶数行添加样式

在这里插入图片描述
此图则是隔行换色的效果。
2、控制表格行的高亮显示
实现某一行的高亮显示,可以使用contains选择器。
用鼠标单击表格行高亮显示:

	<script type="text/javascript">
		$(document).ready(function(){
			//$("tr:contains('程序设计')").addClass("selected");
			$("tbody>tr").click(function(){
				//使鼠标单击的行高亮显示,并且清除其兄弟元素的行高
				$(this).addClass("selected").siblings().removeClass("selected");
				//siblings()方法返回被选元素的所有同级元素,同级元素是共享相同父元素的元素。		
				})
		})
	</script>

siblings()方法返回被选元素的所有同级元素,所以意思就是为当前元素添加样式,并去除其他同级元素的样式。

表格的展开与关闭
	<script type="text/javascript">
		$(function(){
			$("tr.type").click(function(){//获取分类父行
			//获取本分类下的行元素
				$(this).toggleClass("selected").siblings(".line_"+this.id).toggle();
			})
		})
	</script>

toggle() 方法切换元素的可见状态。所以意思就是为当前元素切换样式,且返回当前分类行的子元素,进而设置子元素的展开与收缩效果。

表格内容的筛选

filter()方法实现对表格内容的过滤
1、html代码,创建表格,在表头增加搜索框

			<table border="1" width="260" align="center">
				<thead align="center" valign="bottom">
					<tr>
						<td colspan="2">搜索:<input type="text" name="keyword" id="keyword" /> </td>
					</tr>
					<tr bgcolor="#B2B2B2">
						<td>姓名</td>
						<td>成绩</td>
					</tr>
				</thead>
				<tbody align="center" bgcolor="#FFFF88">
					<tr>
						<td>王帅</td>
						<td>97</td>
					</tr>
					<tr>
						<td>李雷</td>
						<td>91</td>
					</tr>
					<tr>
						<td>高天</td>
						<td>97</td>
					</tr>
					<tr>
						<td>赵卫</td>
						<td>84</td>
					</tr>
					<tr>
						<td>王强</td>
						<td>97</td>
					</tr>
					<tr>
						<td>陈美</td>
						<td>99</td>
					</tr>
				</tbody>
			</table>

2、实现当键盘按键被松开时,如果文本框内容不为空,则筛选包含文本框内容的行。

		<script type="text/javascript">
			$(function(){
				$("#keyword").keyup(function(){
					if($("#keyword").val()!=""){
						//显示指定元素
						$("table tbody tr").hide().filter(":contains("+($(this).val())+")").show();
					}
				})
			})
		</script>

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值