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 相关文章推荐
js no-repeat写法 背景不重复
Mar 18 Javascript
半角全角相互转换的js函数
Oct 16 Javascript
从jQuery.camelCase()学习string.replace() 函数学习
Sep 13 Javascript
JavaScript实现的经典文件树菜单效果
Sep 08 Javascript
JavaScript中的this,call,apply使用及区别详解
Jan 29 Javascript
100多个基础常用JS函数和语法集合大全
Feb 16 Javascript
jQuery ajax实现省市县三级联动
Mar 07 Javascript
vue系列之动态路由详解【原创】
Sep 10 Javascript
Bootstrap 3多级下拉菜单实例
Nov 23 Javascript
基于vue-router 多级路由redirect 重定向的问题
Sep 03 Javascript
简单了解TypeScript中如何继承 Error 类
Jun 21 Javascript
原生javascript的ajax请求及后台PHP响应操作示例
Feb 24 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
常用星际术语索引(新手指南)
2020/03/04 星际争霸
Yii2.0高级框架数据库增删改查的一些操作
2015/11/16 PHP
简单概括PHP的字符串中单引号与双引号的区别
2016/05/07 PHP
PHP使用文件锁解决高并发问题示例
2018/03/29 PHP
List the Codec Files on a Computer
2007/06/18 Javascript
JavaScript的parseInt 进制问题
2009/05/07 Javascript
jcrop基本参数一览
2013/07/16 Javascript
Node.js的特点和应用场景介绍
2014/11/04 Javascript
jQuery实现行文字链接提示效果的方法
2015/03/10 Javascript
jQuery找出网页上最高元素的方法
2015/03/20 Javascript
jQuery实现类似老虎机滚动抽奖效果
2015/08/06 Javascript
JavaScript设置、获取、清除单值和多值cookie的方法
2015/11/17 Javascript
javascript实现保留两位小数的多种方法
2015/12/18 Javascript
jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)
2016/03/05 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
2016/10/28 Javascript
javascript基础练习之翻转字符串与回文
2017/02/20 Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
2017/11/22 Javascript
微信小程序如何获取用户信息
2018/01/26 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
ES6箭头函数和扩展实例分析
2020/05/23 Javascript
Python Web开发模板引擎优缺点总结
2014/05/06 Python
在Python web中实现验证码图片代码分享
2017/11/09 Python
解决pandas read_csv 读取中文列标题文件报错的问题
2018/06/15 Python
python实现微信自动回复及批量添加好友功能
2019/07/03 Python
Python3中FuzzyWuzzy库实例用法
2020/11/18 Python
CSS3实现超慢速移动动画效果非常流畅无卡顿
2014/06/15 HTML / CSS
澳大利亚网上书店:QBD
2021/01/09 全球购物
自荐书范文范例
2014/02/13 职场文书
建筑公司员工自我鉴定
2014/04/08 职场文书
农民工讨薪标语
2014/06/26 职场文书
公司踏青活动方案
2014/08/16 职场文书
大一新生期末自我评价
2014/09/12 职场文书
文明单位创建材料
2014/12/24 职场文书
圣诞晚会主持词
2015/07/01 职场文书
同学聚会祝酒词
2015/08/10 职场文书
MySQL root密码的重置方法
2021/04/21 MySQL