zoukankan      html  css  js  c++  java
  • jquery表单实时验证

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title></title>
     6     <style>
     7         .onError {
     8             color: red;
     9         }
    10     </style>
    11 </head>
    12 <body>
    13 <form action="" id="myForm">
    14     <div class="init">
    15         <label for="username">username:</label>
    16         <input type="text" id="username"/>
    17     </div>
    18 
    19     <div class="init">
    20         <label for="email">email:</label>
    21         <input type="text" id="email"/>
    22     </div>
    23 
    24     <div class="init">
    25         <label for="personInfo">personInfo:</label>
    26         <input type="text" id="personInfo"/>
    27     </div>
    28 
    29     <div class="sub">
    30         <input type="submit" value="提交" id="send"/>
    31         <input type="reset" id="red"/>
    32     </div>
    33 </form>
    34 <script src="jquery.min.js"></script>
    35 <script type="text/javascript">
    36     $(function(){
    37         $('#myForm :input').blur(function(){
    38             var $parent = $(this).parent();
    39             //在创建提交元素之前,将当前元素以前的提醒元素都删除
    40             $parent.find('.onError').remove();
    41             if($(this).is('#username')){
    42                 if($(this).val() == "" || $(this).val().length < 6){
    43                     var error_msg = '请至少输入6位的用户名';
    44                     $parent.append('<span class="onError">'+error_msg+'</span>');
    45                 }
    46             }
    47 
    48             if($(this).is('#email')){
    49                 if($(this).val() == "" || ($(this).val() != "" && !/w+[@]{1}w+[.]w+/.test($(this).val()))){
    50                     var error_msg = '请输入正确的email地址';
    51                     $parent.append('<span class="onError">'+error_msg+'</span>');
    52                 }
    53             }
    54         }).keyup(function(){ //为达到实时验证,添加keyup 和 focus 事件
    55             /*注意点:
    56             trigger()方法触发事件后,还会执行浏览器的默认事件,例如:
    57             $('input').trigger("focus);
    58             这一行代码不仅会触发为<input>元素绑定的focus事件,
    59             也会使<input>元素本身得到焦点(这是浏览器的默认操作)。
    60 
    61             如果只想触发绑定的focus事件,而不想执行浏览器默认操作,
    62             可以使用jquery中另一个类似的方法---triggerHandler()
    63             $("input").triggerHandler("focus");
    64             该方法会触发<input>元素上绑定的特定事件,同时取消浏览器对此
    65             事件的默认操作,即文本框只触发绑定的focus事件,不会得到焦点。
    66             */
    67 
    68             /*这里,trigger('blur')不仅会触发为元素绑定的blur事件,
    69             也会触发浏览器默认的blur事件,即不能将光标定位到文本框上。
    70             而triggerHandler('blur')只会触发为元素绑定的blur事件,
    71             而不触发浏览器默认的blur事件*/
    72             $(this).triggerHandler('blur');
    73         }).focus(function(){
    74             $(this).triggerHandler('blur');
    75         });
    76 
    77         $('#send').click(function(){
    78             $('#myForm .init :input').trigger('blur');
    79             var numError = $('#myForm .init .onError').length;
    80             if(numError){
    81                 return false;
    82             }
    83             alert("注册成功,密码已发送至您的邮箱!");
    84         });
    85     });
    86 </script>
    87 </body>
    88 </html>
  • 相关阅读:
    Java静态分派与动态分派(二)
    重载和重写在jvm运行中的区别(一)
    startActivity启动过程分析(转)
    进程篇—进程整理(转)
    理解Android线程创建流程(转)
    Android进程绝杀技--forceStop(转)
    说说Android应用的persistent属性(转)
    Android四大组件与进程启动的关系(转)
    转: 安卓自动缩放布局,解决屏幕适配问题
    转: android apk 防止反编译技术(1~5连载)
  • 原文地址:https://www.cnblogs.com/xiayu25/p/6242279.html
Copyright © 2011-2022 走看看