JQuery学习笔记16——表单验证

 1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2<html xmlns="http://www.w3.org/1999/xhtml">
 3<head>
 4<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5<title>表单验证</title>
 6<link href="css/style.css" rel="stylesheet" type="text/css" />
 7<script type="text/javascript" src="jquery-1.3.1.js"></script>
 8<script type="text/javascript">
 9    $(function(){
10        $("form :input.required").each(function(){
11            var $required = $("<strong class='high'>*</strong>");//创建元素
12            $(this).parent().append($required);//将它追加到文档中
13        }
);
14        $("form :input").blur(function(){//为表单元素添加失去焦点事件
15            var $parent = $(this).parent();
16            $parent.find(".formtips").remove();//删除以前的提醒元素
17            //验证用户名
18            if($(this).is("#username")){
19                if(this.value == ""|| this.value.length < 6){
20                    var errorMsg = "请输入至少6位的用户名。";
21                    $parent.append("<span class='formtips onError'>"+ errorMsg +"</span>");
22                }
else{
23                    var okMsg = "输入正确";
24                    $parent.append("<span class='formtips onSuccess'>"+ okMsg +"</span>");
25                }

26            }

27            //验证邮箱
28            if($(this).is("#email")){
29                if(this.value==""||(this.value!=""&&!/.+@.+\.[a-zA-Z]{2,4}$/.test(this.value))){
30                    var errorMsg = "请输入正确E-Mail地址。";
31                    $parent.append("<span class='formtips onError'>"+ errorMsg + "</span>");
32                }
else{
33                    var okMsg = "输入正确";
34                    $parent.append("<span class='formtips onSuccess'>" + okMsg + "</span>");                
35                }

36            }

37            
38        }
).keyup(function(){
39            $(this).triggerHandler("blur");//keyup事件能在用户每次松开按键时触发
40        }
).focus(function(){
41            $(this).triggerHandler("blur");//focus事件能在元素得到焦点时触发
42        }
);
43        //提交按钮事件
44        $("#send").click(function(){
45            $("form :input.required").trigger("blur");
46            var numError = $("form .onError").length;
47            if(numError){
48                return false;
49            }

50            alert("注册成功,密码已发到你的邮箱,请查收。");        
51        }
);
52    }
)
53</script>
54</head>
55<body>
56<form method="post" action="">
57    <div class="int">
58        <label for="username">用户名:</label>
59        <input type="text" id="username" class="required" />
60    </div>
61    <div class="int">
62        <label for="email">邮箱:</label>
63        <input type="text" id="email" class="required" />
64    </div>
65    <div class="int">
66        <label for="personinfo">个人资料:</label>
67        <input type="text" id="personinfo" />
68    </div>
69    <div class="sub">
70        <input type="submit" id="send" value="提交" />
71        <input type="reset" id="res" value="取消" />
72    </div>
73</form>
74</body>
75</html>

 注:

trigger("blur")不仅会触发为元素绑定的blur事件,也会触发浏览器默认的blur事件,即不能将光标定位到文本框上。

而triggerHandler("blur")只会触发为元素绑定的blur事件,而不触发浏览器默认的blur事件。

posted @ 2009-07-20 15:39  郭培  阅读(305)  评论(0编辑  收藏  举报