带你学习JQuery:表单验证
来源:互联网 发布:新东方托业网络课程 编辑:程序博客网 时间:2024/05/18 03:10
我们在提交表单时,往往要对数据的合法性进行初期的验证,比如说是否为空,是否符合邮箱地址的格式,验证成功才允许提交否则不允许提交。
对于不符合的在后面用红星提示或者文字提示,对于符合的打一个对号。。。
下面实现上面的要求。
首先要有表单:
<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>
如果是必填的,则加红星标识就是class为required的元素:
$("form :input.required").each(function(){
var $required=$("<strong class='high'>*</>");
$(this).parent().append($required);
});
当文本框失去焦点或按键结束后触发检查事件;
$('form:input').blur(function(){
var $parent=$(this).parent();
$parent.find(".formtips").remove();//必须要有这个,否则每次检查如果不合格都会添加提示,越来越多,每次提示前,先将原来的提示清空
if($(this).is('#username'))
{
if(this.value==""||this.value.length<6)
{
var errorMsg='请输入至少六位的用户名';
$parent.append('<span class="formtips onError">'+errorMsg+'</>');
}else{
var okMsg='输入正确' ;
$parent.append('<span class="formtips onSuccess'>'+okMsg+'</>'');
}
}
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");
});//end blur
//提交,最终验证。
$('#send').click(function(){
$("form :input.required").trigger('blur');
var numError = $('form .onError').length;
if(numError){
return false;
}
alert("注册成功,密码已发到你的邮箱,请查收.");
});//重置
$('#res').click(function(){
$(".formtips").remove();
});
})
整体代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<!-- 引入jQuery -->
<script src="../scripts/jquery-1.3.1.js" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
$(function(){
//如果是必填的,则加红星标识.
$("form :input.required").each(function(){
var $required = $("<strong class='high'> *</strong>"); //创建元素
$(this).parent().append($required); //然后将它追加到文档中
});
//文本框失去焦点后
$('form :input').blur(function(){
var $parent = $(this).parent();
$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");
});//end blur
//提交,最终验证。
$('#send').click(function(){
$("form :input.required").trigger('blur');
var numError = $('form .onError').length;
if(numError){
return false;
}
alert("注册成功,密码已发到你的邮箱,请查收.");
});
//重置
$('#res').click(function(){
$(".formtips").remove();
});
})
//]]>
</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>
- 带你学习JQuery:表单验证
- 带你学习JQuery:表单的改进
- jquery自带表单验证
- PHP jQuery表单,带验证
- jQuery带格式验证的注册表单
- jQuery学习-表单验证功能
- jquery validate.js表单验证(带验证码)
- jquery 自带表单验证 validate 自定义验证
- 带你学习JQuery:AJax_Load()
- 带你学习JQuery:Struts2+Json+JQuery
- jQuery学习之:Validation表单验证插件
- jQuery学习之:Validation表单验证插件
- jQuery学习笔记5 表单验证
- 表单验证jquery.validate.js学习
- jQuery学习之:Validation表单验证插件
- jQuery学习笔记-Validation表单验证插件
- jQuery学习笔记——表单验证
- [jQuery学习系列五 ]5-Jquery学习五-表单验证
- [Linux]VMware 无重启添加scsi硬盘实现LVM动态扩容(上)
- SQL用java连接数据库
- Dataguard网络优化调整
- Hadoop学习笔记2--第一个Mapreduce程序
- 用汇编的眼光看C++(之指针1)
- 带你学习JQuery:表单验证
- VC++笔记(未整理版本)
- Oracle 多 session 串行访问同一个 block
- 编译2.6.8.1版本内核并从新内核启动
- LInux 下 Jni 实现
- oracle:System defined event attributes
- Oracle 估算数据库大小的方法
- Oracle 索引可以比表大
- mysql数据类型