jquery实现表单验证

用jquery实现简单的表单验证

HTML代码:

 1 <form action="" method="post" id="form-data">
 2   <div id="content">
 3     <div>
 4       <label for="username">用户名:</label>
 5       <input type="text" name="username" id="username">
 6       <span class="error">用户名不能为空!</span> </div>
 7     <div>
 8       <label for="email">邮箱:</label>
 9       <input type="text" id="email" name="email">
10       </input>
11       <span class="error">邮箱格式错误!</span> </div>
12     <div>
13       <label for="tel">电话号码:</label>
14       <input type="text" name="tel" id="tel">
15       <span class="error">电话号码格式正确!</span> </div>
16     <div>
17       <label for="msg">留言:</label>
18       <textarea name="mess" id="mess"></textarea>
19       <span class="error">留言不能为空!</span> </div>
20     <div class="submit-box">
21       <button type="submit">提交</button>
22     </div>
23   </div>
24   </div>
25 </form>

css代码:

 1 #content div label {
 2     display: inline-block;
 3     width: 100px;
 4     text-align: right;
 5 }
 6 #content div {
 7     margin-top: 10px;
 8 }
 9 #content textarea {
10     vertical-align: top;
11     height: 5em;
12 }
13 #content span {
14     display: none;
15     color: #f00;
16 }
17 .submit-box {
18     padding-left: 50px;
19 }
20 #content input.fail, #content textarea.fail {
21     border: 1px solid #F00;
22 }
23 #content input.succ, #content textarea.succ {
24     border: 1px solid #06F;
25 }

jquery代码:

 1 $(function(){
 2         //用户名非空验证
 3         $("#username").on("input",function(){
 4             var $this=$(this);
 5            if($this.val()){
 6              $(this).addClass("succ").removeClass("fail");
 7             }else{
 8              $(this).addClass("fail").removeClass("succ");
 9             }
10         })
11         //邮箱验证
12         $("#email").on("input blur",function(){
13            var $this=$(this);
14           var re = /^[a-zA-Z0-9.!#$%&‘*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
15            var is_email=re.test($(this).val()); 
16            if(is_email){
17                 $(this).addClass("succ").removeClass("fail");
18             }else{
19                 $(this).addClass("fail").removeClass("succ");
20             }
21         });
22           //验证手机号码
23         $("#tel").on("input",function(){
24             var $this=$(this);
25             var re=/1\d{10}/;
26             var is_tel=re.test($(this).val());
27             if(is_tel){
28                  $(this).addClass("succ").removeClass("fail");
29             }else{
30                  $(this).addClass("fail").removeClass("succ");
31             }
32         });
33         //留言非空验证
34         $("#mess").keyup(function(event) {
35             var $this=$(this);
36             if($this.val()){
37                 $(this).addClass("succ").removeClass("fail");
38             }else{
39                  $(this).addClass("fail").removeClass("succ");
40             }
41         });
42         
43         $("#form-data").submit(function(event){
44             var falg=true;
45              //$(‘element‘, this)相当于$(this).find(‘element‘)
46             $("input,textarea",this).each(function() {
47                 var $this=$(this);
48                 var is_succ=$this.hasClass("succ");
49                 if(is_succ){
50                     $this.siblings(".error").hide();
51                 }else{
52                     $this.siblings(".error").show();
53                    falg=false;
54                 }
55             });
56             if(falg){
57                   alert("submit success!");
58              }else{
59                   event.preventDefault();
60              }
61         });
62           
63     })

效果图如下:

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。