Java 表单校验小结

这篇博客主要说明表单校验中的文本框、密码框、文本域、单选框和多选框、下拉框的校验;至于隐藏框,这里先不说;

文本框、密码框、文本域校验

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<form action="http://www.baidu.com">
			<input id="user_name" placeholder="请输入用户名:" />
			<input id="password" type="password" placeholder="请输入密码:" />
			<input type="submit" value="登录" />
		</form>
	</body>
</html>

我们分别创建文本框、密码框和提交框,提示输入用户名和密码,校验后提交,使其跳转到百度首页;这是我们需要做到的效果;上面一段代码是先创建好页面(即没有实现预定的功能),如下图:

然后创建方法进行用户名和密码的校验,顺便添加个文本域;

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script>
			function test(){
				var element = document.getElementById("user_name");  //获取元素
				if(element.value==""){  //判断元素的值
					alert("用户名不能为空!")  //显示提示框信息
					return false;
				}
				element = document.getElementById("password");  //获取元素
				if(element.value==""){  //判断元素的值
					alert("密码不能为空!");   //显示提示框信息
					return false;
				}
				element = document.getElementById("summary"); //获取元素
				if(element.value==""){  //判断元素的值
					alert("简介不能为空!");  //显示提示框信息
					return false;
				}
				return true;
			}	
		</script>
		
		<form action="http://www.baidu.com" onsubmit=" return test()">  //调用函数
			<input id="user_name" placeholder="请输入用户名:" />  //文本框
			<input id="password" type="password" placeholder="请输入密码:" />  //密码框
			<textarea id="summary" placeholder="简介"></textarea>  //文本域
			<input type="submit" value="登录" />
		</form>
	</body>
</html>

这段代码在前面代码的基础上完成了校验功能:

  1. onsubmit 当存在submit提交框时使用,提交整个表单的信息;条件为真则提交;
  2. return test() 调用函数,test()的返回值决定着是否提交表单数据;
  3. 使用getby方法获取元素;即此时的element变量就指向 <input id="user_name" placeholder="请输入用户名:" /> 这行代码;
  4. 使用vlaue方法获取输入值,判断输入值(元素的值)是否为空;为空则表示用户未进行输入,显示信息提示框并返回false,不提交表单数据;否则,继续执行代码;
  5. 使用getby方法获取元素;即此时的element变量指向<input id="password" type="password" placeholder="请输入密码:" />这行代码;
  6. 重复第4步操作,判断输入值是否为空,决定程序是否继续执行;
  7. 重复第5、6步操作;
  8. 若所有条件成立,则输入完毕,返回true,提交表单数据;

单选和多选、下拉框校验

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script>
			function test(){
				var elements = document.getElementsByName("sex");  //获取数组式元素
				var flag=false;
				for(var i=0;i<elements.length;i++){  //遍历
					if(elements[i].checked){  //判段是否有被选选项
						flag=true;
						break;
					}
				}
				if(!flag){
					alert("请选择性别!");
					return false;
				}
				elements = document.getElementsByName("hobby");  //获取数组式元素
				flag=false;
				for(var i=0;i<elements.length;i++){  //遍历
					if(elements[i].checked){  //判段是否有被选选项
						flag=true;
						break;
					}
				}
				if(!flag){
					alert("请选择爱好!");
					return false;
				}
				elements = document.getElementsByTagName("select")[0];  //获取数组式元素
				flag=false;
				for(var i=0;i<elements.length;i++){  //遍历
					if(elements[i].selected && elements[i].value!=""){  //判段是否符合选择要求
						flag=true;
						break;
					}
				}
				if(!flag){
					alert("请选择年级!");
					return false;
				}
				return true;
			}	
		</script>
		
		<form action="http://www.baidu.com" onsubmit=" return test()">
			<input type="radio" name="sex" value="0"/>男<input type="radio" name="sex" value="1"/>女  //单选
			<br />
			<input type="checkbox" name="hobby" value="0">篮球  //多选
			<input type="checkbox" name="hobby" value="1">足球
			<input type="checkbox" name="hobby" value="2">羽毛球
			<br />
			<select>  //下拉框
				<option value="">--请选择--</option>
				<option value="1">一年级</option>
				<option value="2">二年级</option>
			</select>
			<br />
			<input type="submit" value="登录" />

		</form>
	</body>
</html>

界面效果如下;

  1. 创建方法,使用getby方式获取数组式元素(无论是单选还是多选,一般都会有2个或2个以上的选项,这些选项都要获取到,因此使用数组式获取方法);
  2. 使用循环对获取的数组进行遍历;
  3. 判断选项是否符合要求,符合则继续执行程序;不符合则显示提示信息并返回false,不提交表单数据;
  4. 重复1、2、3步骤,直至所有条件判断完成;
  5. 返回true,提交表单数据;

注意:单选和多选使用checked方法判断选项是否被选中,而下拉框使用selected判断选项是否被选中,且下拉框需要根据value值判断选             项是否符合我们的要求(因为下拉框必有一个选项被选中);

将以上所有的框和选项结合在一起就是:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script>
			function test(){
				var element = document.getElementById("user_name");
				if(element.value==""){
					alert("用户名不能为空!")
					return false;
				}
				element = document.getElementById("password");
				if(element.value==""){
					alert("密码不能为空!");
					return false;
				}
				element = document.getElementById("summary");
				if(element.value==""){
					alert("简介不能为空!");
					return false;
				}
				var elements = document.getElementsByName("sex");
				var flag=false;
				for(var i=0;i<elements.length;i++){
					if(elements[i].checked){
						flag=true;
						break;
					}
				}
				if(!flag){
					alert("请选择性别!");
					return false;
				}
				elements = document.getElementsByName("hobby");
				flag=false;
				for(var i=0;i<elements.length;i++){
					if(elements[i].checked){
						flag=true;
						break;
					}
				}
				if(!flag){
					alert("请选择爱好!");
					return false;
				}
				elements = document.getElementsByTagName("select")[0];
				flag=false;
				for(var i=0;i<elements.length;i++){
					if(elements[i].selected && elements[i].value!=""){
						flag=true;
						break;
					}
				}
				if(!flag){
					alert("请选择年级!");
					return false;
				}
				return true;
			}	
		</script>
		
		<form action="http://www.baidu.com" onsubmit=" return test()">
			<input id="user_name" placeholder="请输入用户名:" />
			<input id="password" type="password" placeholder="请输入密码:" />
			<textarea id="summary" placeholder="简介"></textarea>
			<br />
			<input type="radio" name="sex" value="0"/>男<input type="radio" name="sex" value="1"/>女
			<br />
			<input type="checkbox" name="hobby" value="0">篮球
			<input type="checkbox" name="hobby" value="1">足球
			<input type="checkbox" name="hobby" value="2">羽毛球
			<br />
			<select>
				<option value="">--请选择--</option>
				<option value="1">一年级</option>
				<option value="2">二年级</option>
			</select>
			<br />
			<input type="submit" value="登录" />

		</form>
	</body>
</html>

界面为:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值