form 表单验证

这是一个表单验证的demo,虽然现在就已经很少直接写js进行表单验证了,但还是可以用来考验和锻炼大家的js功力,如果有改进的地方,还望大家多多反馈!

<html>

	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			table {
				width: 80%;
			}
			th {
				width: 150px;
			}
			.spanred {
				color: red;
			}
			.spangreen {
				color: green;
			}
		</style>
		<script type="text/javascript">
			var globalCode = "";

			function generateCode() {
				//随机生成1000到9999的验证码
				globalCode = parseInt(Math.random() * 9000 + 1000);
				//将验证码显示到span
				document.getElementById("randomCode").innerHTML = globalCode;
			}

			function checkUname() {
				//定义正则表达式对象
				var reg = /^\w{4,12}$/ig;
				return checkField("uname", reg);
			}

			function checkPwd() {
				//定义正则表达式对象
				var reg = /^\w{4,12}$/ig;
				return checkField("pwd", reg) && checkPwd2();
			}

			function checkPwd2() {
				var pwd = document.getElementById("pwd");
				var pwd2 = document.getElementById("pwd2");
				var span = document.getElementById("pwd2Span");
				if (pwd2.value.length == 0) {
					span.className = "spanred";
					span.innerHTML = "数据项[确认密码]不能为空";
					return false;
				} else if (pwd.value == pwd2.value) {
					span.className = "spangreen";
					span.innerHTML = "数据项[确认密码]ok";
					return true;
				} else {
					span.className = "spanred";
					span.innerHTML = "数据项[密码]和[确认密码]不一致";
					return false;
				}
			}

			function checkRealname() {
				//定义正则表达式对象
				var reg = /^[\u4e00-\u9fa5]{2,6}$/ig;
				return checkField("realname", reg);
			}

			function checkEmail() {
				//定义正则表达式对象
				var reg = /^\w{5,12}@\w{2,10}(\.[a-z]{2,3}){1,2}$/ig;
				return checkField("email", reg);
			}

			function checkPhone() {
				//定义正则表达式对象
				var reg = /^1[3458]\d{9}$/ig;
				return checkField("phone", reg);
			}

			function checkIntro() {
				//定义正则表达式对象
				var reg = /^.{0,500}$/ig;
				//获取表单域的
				var obj = document.getElementById("intro");
				//获取表单域的值
				var val = obj.value;
				//获取表单域的文本描述
				var alt = obj.alt;
				//获取span
				var span = document.getElementById("introSpan");
				//对表单域的值进行验证
				if (reg.test(val)) {
					span.className = "spangreen";
					span.innerHTML = "数据项[个人介绍]ok";
					return true;
				} else {
					span.className = "spanred";
					span.innerHTML = "数据项[个人介绍]不符合规则";
					return false;
				}
			}

			function checkField(objId, reg) {
				//获取表单域的
				var obj = document.getElementById(objId);
				//获取表单域的值
				var val = obj.value;
				//获取表单域的文本描述
				var alt = obj.alt;
				//获取span
				var span = document.getElementById(objId + "Span");
				//对表单域的值进行验证
				if (val == null || val.length == 0) {
					span.className = "spanred";
					span.innerHTML = "数据项[" + alt + "]不能为空";
					return false;
				} else if (reg.test(val)) {
					span.className = "spangreen";
					span.innerHTML = "数据项[" + alt + "]ok";
					return true;
				} else {
					span.className = "spanred";
					span.innerHTML = "数据项[" + alt + "]不符合规则";
					return false;
				}
			}

			function checkFav() {
				//获取对象
				var fav = document.getElementsByName("fav");
				var span = document.getElementById("favSpan");
				//遍历并判断
				for (var i = 0; i < fav.length; i++) {
					if (fav[i].checked) {
						span.className = "spangreen";
						span.innerHTML = "数据项[爱好]ok";
						return true;
					}
				}
				span.className = "spanred";
				span.innerHTML = "数据项[爱好]至少选择一项";
				return false;
			}

			function checkAddress() {
				//获取对象
				var address = document.getElementById("address");
				var span = document.getElementById("addressSpan");
				//判断是否为正确选项
				if (address.value == "") {
					span.className = "spanred";
					span.innerHTML = "数据项[户籍地址]不能为请选择";
					return false;
				} else {
					span.className = "spangreen";
					span.innerHTML = "数据项[户籍地址]ok";
					return true;
				}
			}

			function checkCode() {
				//获取CODE
				var code = document.getElementById("code");
				var span = document.getElementById("codeSpan");
				//验证长度
				if (code.value.length == 4 && code.value == globalCode) {
					span.className = "spangreen";
					span.innerHTML = "数据项[验证码]ok";
					return true;
				} else {
					span.className = "spanred";
					span.innerHTML = "数据项[验证码]输入错误";
					return false;
				}
			}

			function checkAgree() {
				//获取是否同意
				var agree = document.getElementById("agree");
				//获取提交按钮
				var sub = document.getElementById("sub");
				sub.disabled = !agree.checked;
			}

			function testReset() {
				var flag = window.confirm("您确定要重置注册信息吗?");
				return flag;
			}

			function testSubmit() {
				var unameFlag = checkUname();
				var pwdFlag = checkPwd();
				var pwd2Flag = checkPwd2();
				var emailFlag = checkEmail();
				var realnameFlag = checkRealname();
				var phoneFlag = checkPhone();
				var favFlag = checkFav();
				var addressFlag = checkAddress();
				var introFlag = checkIntro();
				var codeFlag = checkCode();
				return unameFlag && pwdFlag && pwd2Flag && emailFlag && realnameFlag && phoneFlag && favFlag && addressFlag && introFlag && codeFlag;
			}
		</script>
	</head>

	<body onload="generateCode();">
		<h1>表单数据验证</h1>
		<form action="#" method="get" name='frm' onsubmit="return testSubmit();" onreset="return testReset();">
			<table border="1">
				<tr>
					<th>用户名</th>
					<td>
						<input type="text" id="uname" alt="用户名" name="uname" value="" onblur="checkUname();" />
						<span id="unameSpan"></span>
					</td>
				</tr>
				<tr>
					<th>密码</th>
					<td>
						<input type="password" id="pwd" alt="密码" name="pwd" value="" onblur="checkPwd();" />
						<span id="pwdSpan"></span>
					</td>
				</tr>
				<tr>
					<th>确认密码</th>
					<td>
						<input type="password" id="pwd2" value="" onblur="checkPwd2();" />
						<span id="pwd2Span"></span>
					</td>
				</tr>
				<tr>
					<th>真实姓名</th>
					<td>
						<input type="text" id="realname" name="realname" alt="真实姓名" value="" onblur="checkRealname();" />
						<span id="realnameSpan"></span>
					</td>
				</tr>
				<tr>
					<th>电子邮箱</th>
					<td>
						<input type="text" id="email" name="email" alt="电子邮箱" value="" onblur="checkEmail();" />
						<span id="emailSpan"></span>
					</td>
				</tr>
				<tr>
					<th>手机号码</th>
					<td>
						<input type="text" id="phone" name="phone" alt="手机号码" value="" onblur="checkPhone();" />
						<span id="phoneSpan"></span>
					</td>
				</tr>
				<tr>
					<th>性别</th>
					<td>
						<input type="radio" name="gender" value="1" checked />男
						<input type="radio" name="gender" value="2" />女

					</td>
				</tr>
				<tr>
					<th>爱好</th>
					<td>
						<input type="checkbox" name="fav" value="1" onclick="checkFav();" />足球
						<input type="checkbox" name="fav" value="2" onclick="checkFav();" />篮球
						<input type="checkbox" name="fav" value="3" onclick="checkFav();" />乒乓球
						<input type="checkbox" name="fav" value="4" onclick="checkFav();" />羽毛球
						<span id="favSpan"></span>
					</td>
				</tr>
				<tr>
					<th>户籍地址</th>
					<td>
						<select name="address" id="address" onchange="checkAddress();">
							<option value="">--请选择--</option>
							<option value="1">河南</option>
							<option value="2">河北</option>
							<option value="3">湖南</option>
							<option value="4">湖北</option>
						</select>
						<span id="addressSpan"></span>
					</td>
				</tr>
				<tr>
					<th>个人介绍</th>
					<td>
						<textarea id="intro" name="intro" rows="5" cols="80" alt="个人介绍" onblur="checkIntro();"></textarea>
						<span id="introSpan"></span>
					</td>
				</tr>
				<tr>
					<th>验证码</th>
					<td>
						<input type="text" id="code" size="4" maxlength="4" value="" onblur="checkCode();" /><span id="randomCode" onclick="generateCode();"></span>
						<span id="codeSpan"></span>
					</td>
				</tr>
				<tr>
					<th colspan="2">
						<input type="checkbox" id="agree" checked="checked" onclick="checkAgree();" /> 是否阅读并同意协议
					</th>
				</tr>
				<tr>
					<th colspan="2">
						<input type="submit" id="sub" value="提交" />
						<input type="reset" value="重置" />
					</th>
				</tr>
			</table>
		</form>
	</body>

</html>
时间: 2024-07-29 20:49:31

form 表单验证的相关文章

python_way day14 HTML-day5 (form表单验证,)

python-way day19 1. dJango的form表单验证 一,django表单验证功能 1.django验证基础: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>django form</title> </head> <body> <div> <i

用jquery写自己的form表单验证

这几天看了锋利的jquery,感觉很不错.特别是jquery强大的选择器.今天就利用jquery写了一个自己的form表单验证的小案例.当巩固下jquery.首先贴下代码,当然只是一个小案例. 思路:   1.<input type="text" Validate="Date" id="date"/>这里的 Validate:是我们需要验证的类型(属于日期类型),这里你也可以自己定义.id属性就不用说了.<input type=

django之form表单验证

django中的Form一般有两种功能: 输入html 验证用户输入 #!/usr/bin/env python # -*- coding:utf-8 -*- import re from django import forms from django.core.exceptions import ValidationError def mobile_validate(value): mobile_re = re.compile(r'^(13[0-9]|15[012356789]|17[678]

Python自动化运维系列之Django Form表单验证

Form表单验证 Django核心功能组件之一,虽然也可以在前端使用JS对表单验证, 但是Django中已经为我们准备好的Form功能还算是很强大的,有时候比较适合运维,为我们简化了很多前端开发工作. Django最主要的几个功能有4个     ·  生成HTML标签     ·  验证数据(表单错误信息提示)     ·  HTML 表单保留上次提交数据     ·  初始化页面表单内容 Django的Form内容还是挺多的,我们可以从一个简单的登陆验证例子来看看Form的基本功能使用 1)新

Django基础之Form表单验证

Form表单验证 1.创建Form类(本质就是正则表达式的集合) from django.forms import Form from django.forms import fields from django.forms import widgets from Mybbs.models import * import re class UserForm(Form): username = fields.CharField( required=True, error_messages={'re

Django中的Form表单验证

回忆一下Form表单验证的逻辑: 前端有若干个input输入框,将用户输入内容,以字典传递给后端. 后端预先存在一个Form表单验证的基类,封装了一个检测用户输入是否全部通过的方法.该方法会先定义好错误信息的字典,并会遍历类的所有属性(对应前端待验证的输入域),调用各自的验证方法,将错误信息(两类,必要与否以及格式正确与否)存入字典,并得出最终的验证结果.在使用时,需要定义继承自Form基类不同的Form类,以对应有着不同输入域的Form表单.在拿到前端给的字典前,要先初始化自定义From类,直

抽屉之Tornado实战(7)--form表单验证

在这里,我们把form表单验证的代码进行工具化了,以后稍微修改一下参数就可以拿来用了 先贴上代码 forms.py from backend.form import fields class BaseForm: def __init__(self): self._value_dict = {} self._error_dict = {} self._valid_status = True def valid(self, handler): for field_name, field_obj in

ant-pro使用Form表单验证上传图片出现的问题

1.复现:用antd的Form表单验证上传图片必填项时出现问题:复现过程,先提交,提示图片需要上传,上传成功后,依旧提示:图片未上传 2.表单验证原理:先理解一下antd的Form表单验证的表层原理,每个表单getFieldDecorator配置项都有个名字,比如就叫goodsSkuImg,这个goodsSkuImg对应this.props.form.goodsSkuImg如果为空则验证不通过. 3.结论:Form提示的根本原因是this.props.form.goodsSkuImg值为空 4.

element-ui Form表单验证

element-ui Form表单验证规则全解 element的form表单非常好用,自带了验证规则,用起来很方便,官网给的案例对于一些普通场景完全没问题,不过一些复杂场景的验证还得自己多看文档摸索,自己经过数次爬坑 之后,总结了几种form表单的验证规则,为了便于阅读,验证规则是拆分的,完整的代码放在文末 1. 普通输入验证 <el-form-item label="活动名称" prop="name"> <!-- validate-event属性

django form表单验证

简单例子: 1 #自定义验证类 2 class Check_form1(forms.Form): 3 #user就是要验证的字段,这里对应前端name <input type='text' name=user> 4 user = fields.CharField() 5 pwd = fields.CharField() 6 email = fields.EmailField() 7 8 9 10 def test_form1(request): 11 if request.method ==