JavaScript进阶(四)form表单校验

版权声明:程序猴jwang版权所有 https://blog.csdn.net/qq_21046965/article/details/83868901

前言

      本章将学习表单的校验,作为一个前面学习的总结!

方法

1.概念

我们知道,在学习HTML的时候,我们做了一个非常丑陋的表单,里面有文本框、单选钮、复选框等一系列表单元素。这些都是随便填写的,没有加任何的校验。也就是说正常情况下我们需要对表单进行校验,确保用户输入正确!

2.具体思路

1)回顾一下简单的form表单的写法

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>form表单的学习</title>
	</head>
	<body>
		<form action="#" method="post">
			<h5>注册信息</h5>
			用户名:<input type="text" name="username" id="username" value=""/><br/>
			性&nbsp;&nbsp;&nbsp;&nbsp;别:<input type="radio" name="sex" value="男" checked="checked"/>男<input type="radio" name="sex" value="女"/>女<br/>
			爱&nbsp;&nbsp;&nbsp;&nbsp;好:<input type="checkbox" name="hobby" value="足球" />足球<input type="checkbox" name="hobby" value="游泳"/>游泳
			<input type="checkbox" name="hobby" value="棋牌" />棋牌<br/>
			毕业院校:<select name="school" id="school">
						<option value="--请选择--">--请选择--</option>
						<option value="清华大学">清华大学</option>
						<option value="北京大学">北京大学</option>
						<option value="挖掘机技术学院">挖掘机技术学院</option>
					</select><br/>
			个人简介:<textarea rows="3" cols="20" name="introduce" id="introduce"></textarea><br/>
			<input type="submit" value="提交"/>&nbsp;&nbsp;&nbsp;&nbsp;<input type="reset" name="" id="" value="重置" />
		</form>
	</body>
</html>

以上就是我们之前写过的一个表单,这里我就不加CSS修饰了,丑就丑吧!

2)探究姓名校验

首先,我们为提交按钮添加一个点击事件,用来对表单进行一个校验。

姓名的校验主要是一个非空校验,如下代码可以实现!

function validate(){
	//加入姓名验证
	var username = document.getElementById("username").value;
	if(username.trim() == ""){
		alert("用户名不能为空!");
	}
}

3)探究爱好选择校验

扫描二维码关注公众号,回复: 4211772 查看本文章

我们知道,爱好至少要选择一项!我们可以用如下代码进行校验!

//加入爱好校验
var hobby = document.getElementsByName("hobby");
var isHobby = false;
for(var i=0;i<hobby.length;i++){
	if(hobby[i].checked){
		isHobby=true;
	}
}
if(!isHobby){
	alert("爱好至少选择一项!");
}

4)探究毕业院校校验

我们知道,毕业院校是一个下拉框,我们不能让用户选择“--请选择--”这个选项!所以代码如下:

//加入毕业院校校验
var school = document.getElementById("school").value;
if(school == "--请选择--"){
	alert("请选择毕业院校!");
}

5)探究个人简介的校验

个人简介的校验和用户名的校验相一致

var introduce = document.getElementById("introduce").value
if(introduce.trim() == ""){
	alert("个人简介不能为空!");
}

3.总体规划

1)避免验证失败后仍然提交

将提交按钮改成普通按钮,通过js来进行提交

<input type="button" value="提交" onclick="sub();"/>

sub()方法中对表单项实现提交功能,前提是验证通过!

function sub(){
	if(validate()){
		document.getElementById("ff").submit();
	}
}

这里的validate()函数就是我们的校验函数,如果校验成功返回true进行提交,反之则不提交

validate()函数的具体实现如下,综合了我们上面讲解的内容

function validate(){
	//加入姓名验证
	var username = document.getElementById("username").value;
	if(username.trim() == ""){
		alert("用户名不能为空!");
		return false;
	}
	//加入爱好校验
	var hobby = document.getElementsByName("hobby");
	var isHobby = false;
	for(var i=0;i<hobby.length;i++){
		if(hobby[i].checked){
			isHobby=true;
		}
	}
	if(!isHobby){
		alert("爱好至少选择一项!");
		return false;
	}
	//加入毕业院校校验
	var school = document.getElementById("school").value;
	if(school == "--请选择--"){
		alert("请选择毕业院校!");
		return false;
	}
	//加入个人简介校验
	var introduce = document.getElementById("introduce").value
	if(introduce.trim() == ""){
		alert("个人简介不能为空!");
		return false;
	}
	return true;
}

2)实现校验人性化

我们通过实验发现一个问题,那就是我们每次验证失败都会弹出一个警告框告知我们!实际上这种提醒的方式非常不人性化。通常的做法是在表单项右侧以文本的方式进行提示!

将每个表单项的代码后追加span标签,如用户名标签追加span标签如下:

用户名:<input type="text" name="username" id="username" value=""/><span id="usernameSpan"></span><br/>

对用户名的校验进行一个改进如下:

var username = document.getElementById("username").value;
var usernameSpan = document.getElementById("usernameSpan");
if(username.trim() == ""){
	usernameSpan.innerText = "用户名不能为空";
	usernameSpan.style.color = "red";
	return false;
}else{
	usernameSpan.innerText = "用户名输入正确";
	usernameSpan.style.color = "green";
}

这样的话,校验更加人性化,避免弹窗!

剩余的校验以此类推,请读者尝试自行进行补全!


以上就是js表单校验的相关知识!

到此为止,我们js的相关知识就算是告一段落了!更加深层次的知识读者可以自行去学习(如果你是学习前端的话),如果你只是一个Java开发人员,实际上你了解到这里已经足够了!JQuery会代替大部分的知识,我相信没有哪个公司依然在用原生的js在写程序,所以我们要以此为立足点,将我们的目光放在JQuery的学习上!

猜你喜欢

转载自blog.csdn.net/qq_21046965/article/details/83868901