jquery实现简单的表单验证


Posted in Javascript onNovember 17, 2015

 jquery如何实现简单的表单验证,我们先跟大家分享一下实现思路。

大概思路:
先为每一个required添加必填的标记,用each()方法来实现。
在each()方法中先是创建一个元素,然后通过append()方法将创建的元素加入到父元素后面。
这里面的this用的很精髓,每一次的this都对应着相应的input元素,然后获取相应的父元素。
然后为input元素添加失去焦点事件。然后进行用户名、邮件的验证。
这里用了一个判断is()如果是用户名,做相应的处理,如果是邮件做相应的验证。
在jQuery框架中,也可以适当的穿插一写原汁原味的javascript代码。比如验证用户名中就有this.value,和this.value.length。对内容进行判断。
然后进行的是邮件的验证,用到了正则表达式
然后为input元素添加keyup事件focus事件,就是在keyup时也要做一下验证,调用blur事件就行了。用triggerHandler()触发器,触发相应的事件。
最后提交表单时做统一验证,做好整体与细节的处理。
如果是必填的,则加红星标识

jQuery部分:

<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>

html部分:

<body>

<form method="post" action="">
 <div class="int">
  <label for="username">用户名:</label>
  <!-- 为每个需要的元素添加required -->
  <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>

以上就是jquery实现简单的表单验证的关键代码,希望对大家的学习有所帮助。

Javascript 相关文章推荐
jQuery基础知识filter()和find()实例说明
Jul 06 Javascript
日期处理的js库(迷你版)--自建js库总结
Nov 21 Javascript
js中回调函数的学习笔记
Jul 31 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
Oct 10 Javascript
Javascript学习笔记之函数篇(六) : 作用域与命名空间
Nov 23 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
Jan 19 Javascript
一步步教大家编写酷炫的导航栏js+css实现
Mar 14 Javascript
jQuery的内容过滤选择器学习教程
Apr 18 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
Nov 01 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
May 09 Javascript
JS实现transform实现扇子效果
Jan 17 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
Feb 04 Javascript
将JavaScript的jQuery库中表单转化为JSON对象的方法
Nov 17 #Javascript
基于jquery实现可定制的web在线富文本编辑器附源码下载
Nov 17 #Javascript
Jquery ajax 同步阻塞引起的UI线程阻塞问题
Nov 17 #Javascript
jquery判断密码强度的验证代码
Apr 22 #Javascript
jquery实现邮箱自动填充提示功能
Nov 17 #Javascript
jQuery实现文本框邮箱输入自动补全效果
Nov 17 #Javascript
基于Jquery和html5的7款个性化地图插件
Nov 17 #Javascript
You might like
php守护进程 加linux命令nohup实现任务每秒执行一次
2011/07/04 PHP
php使用imagick模块实现图片缩放、裁剪、压缩示例
2014/04/17 PHP
Yii中CGridView实现批量删除的方法
2015/12/28 PHP
htm调用JS代码
2007/03/15 Javascript
javascript Split方法,indexOf方法、lastIndexOf 方法和substring 方法
2009/03/21 Javascript
jquery last-child 列表最后一项的样式
2010/01/22 Javascript
JS组件Bootstrap Select2使用方法详解
2020/04/17 Javascript
jQuery实现的文字hover颜色渐变效果实例
2016/02/20 Javascript
JS实现简易的图片拖拽排序实例代码
2017/06/09 Javascript
Angular中ng-repeat与ul li的多层嵌套重复问题
2017/07/24 Javascript
vue实现单选和多选功能
2017/08/11 Javascript
EasyUI在Panel上动态添加LinkButton按钮
2017/08/11 Javascript
详解使用vscode+es6写nodejs服务端调试配置
2017/09/21 NodeJs
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
微信小程序登录态和检验注册过没的app.js写法
2019/05/22 Javascript
VUE.js实现动态设置输入框disabled属性
2019/10/28 Javascript
Vue中使用Lodop插件实现打印功能的简单方法
2019/12/19 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
[36:54]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
解决python写的windows服务不能启动的问题
2014/04/15 Python
python安装以及IDE的配置教程
2015/04/29 Python
Python爬虫中urllib库的进阶学习
2018/01/05 Python
Mac 使用python3的matplot画图不显示的解决
2019/11/23 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
2020/04/01 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
2020/04/27 Python
python继承threading.Thread实现有返回值的子类实例
2020/05/02 Python
pandas DataFrame运算的实现
2020/06/14 Python
德国苹果商店:MacTrade
2020/05/18 全球购物
家长对小学生的评语
2014/01/28 职场文书
中队活动总结
2014/08/27 职场文书
升学宴演讲稿
2014/09/01 职场文书
名人演讲稿范文
2014/09/16 职场文书
学校2015年纠风工作总结
2015/05/15 职场文书
观后感的写法
2015/06/19 职场文书
《作风建设永远在路上》心得体会
2016/01/21 职场文书