【锋利的jQuery】11、表单验证
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>表单验证</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<!-- 在head中引入jQuery 这个功能跟jQuery的版本还是有点关系,建议用老版本-->
<script type="text/javascript" src="../../lib/jquery-3.1.1.js"></script>
<link href="../../../css/jQuery/demo/ch05/style.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript">
$(function () {
//如果是必填的,则加红星标识
$("form :input.required").each(function () {
var $required = $("<strong class='high'> *</strong>"); //创建元素
$(this).parent().append($required);
});
//文本框失去焦点后
// var inputt = $('form :input');
$('form :input').blur(function () {
var tt = this;
// alert("输入框失去了焦点" + this);
var $parent = $(this).parent();
// $parent.append('<span class="onSuccess">测试</span>');
$parent.find(".formtips").remove();
//验证用户名
if ($(this).is('#username')) {
if (this.value == "" || this.value.length < 6) {
var errorMsg = '请输入至少6位的用户名.';
$parent.append('<span class="formtips onError">' + errorMsg + '</span>');
} else {
var okMsg = '输入正确.';
$parent.append('<span class="formtips onSuccess">' + okMsg + '</span>');
}
}
//验证邮件
if ($(this).is('#email')) {
if (this.value == "" || ( this.value != "" && !/.+@.+\.[a-zA-Z]{2,4}$/.test(this.value) )) {
var errorMsg = '请输入正确的E-Mail地址.';
$parent.append('<span class="formtips onError">' + errorMsg + '</span>');
} else {
var okMsg = '输入正确.';
$parent.append('<span class="formtips onSuccess">' + okMsg + '</span>');
}
}
}).keyup(function(){
//这个是按键松开触发事件
$(this).triggerHandler("blur");
}).focus(function(){
//获取焦点事件
$(this).triggerHandler("blur");
});
//提交,最终验证。
$('#send').click(function () {
//触发器,触发事件
$("form :input.required").trigger('blur');
var numError = $('form .onError').length;
if (numError) {
return false;
}
alert("注册成功,密码已发到你的邮箱,请查收.");
});
})
</script>
</head>
<body>
<form method="post" action="#">
<div class="int">
<label for="username">用户名:</label>
<input type="text" id="username" class="required"/>
</div>
<div class="int">
<label for="email">邮箱:</label>
<input type="text" id="email" class="required"/>
</div>
<div class="int">
<label for="personinfo">个人资料:</label>
<input type="text" id="personinfo"/>
</div>
<div class="sub">
<input type="submit" value="提交" id="send"/><input type="reset" id="res"/>
</div>
</form>
</body>
</html>
css
body {
font: 12px/19px Arial, Helvetica, sans-serif;
color: #666;
}
form div {
margin: 5px 500px;
}
.int label {
float: left;
width: 100px;
text-align: right;
}
.int input {
padding: 1px 1px;
border: 1px solid #ccc;
height: 16px;
}
.sub {
padding-left: 100px;
}
.sub input {
margin-right: 10px;
}
.formtips {
width: 200px;
margin: 2px;
padding: 2px;
}
.onError {
background: #FFE0E9 url(../../../../images/jQuery/ch05/reg3.gif) no-repeat 0 center;
padding-left: 25px;
}
.onSuccess {
background: #E9FBEB url(../../../../images/jQuery/ch05/reg4.gif) no-repeat 0 center;
padding-left: 25px;
}
.high {
color: red;
}
图片:


效果:




浙公网安备 33010602011771号