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 相关文章推荐
javascript Keycode对照表
Oct 24 Javascript
JavaScript 序列化对象实现代码
Dec 18 Javascript
js 定时器setTimeout无法调用局部变量的解决办法
Nov 28 Javascript
JavaScript获取Url里的参数
Dec 18 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
Jan 31 Javascript
JavaScript引用类型Date常见用法实例分析
Aug 08 Javascript
vscode下vue项目中eslint的使用方法
Jan 13 Javascript
基于layui框架响应式布局的一些使用详解
Sep 16 Javascript
jquery使用echarts实现有向图可视化功能示例
Nov 25 jQuery
.netcore+vue 实现压缩文件下载功能
Sep 24 Javascript
Vue绑定用户接口实现代码示例
Nov 04 Javascript
vue+iview实现分页及查询功能
Nov 17 Vue.js
将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
星际争霸教主Flash的ID由来:你永远不会知道他之前的ID是www!
2019/01/18 星际争霸
php中jQuery插件autocomplate的简单使用笔记
2012/06/14 PHP
解析PHP可变函数的经典用法
2013/06/20 PHP
ThinkPHP应用模式扩展详解
2014/07/16 PHP
Symfony数据校验方法实例分析
2015/01/26 PHP
PHP链表操作简单示例
2016/10/15 PHP
PHP框架laravel的.env文件配置教程
2017/06/07 PHP
基于iframe实现类似于ajax的页面无刷新
2014/05/31 Javascript
node.js中的fs.open方法使用说明
2014/12/17 Javascript
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
2014/12/18 NodeJs
javascript随机显示背景图片的方法
2015/06/18 Javascript
javascript解决IE6下hover问题的方法
2015/07/28 Javascript
理解javascript异步编程
2016/01/27 Javascript
几种经典排序算法的JS实现方法
2016/03/25 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
JS实现div模块的截图并下载功能
2017/10/17 Javascript
javascript按钮禁用和启用的效果实例代码
2017/10/29 Javascript
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
在Vue中用canvas实现二维码和图片合成海报的方法
2019/06/10 Javascript
微信小程序点击view动态添加样式过程解析
2020/01/21 Javascript
vue中的使用token的方法示例
2020/03/10 Javascript
Python IDE PyCharm的基本快捷键和配置简介
2015/11/04 Python
Python使用dict.fromkeys()快速生成一个字典示例
2019/04/24 Python
Python数据类型之Number数字操作实例详解
2019/05/08 Python
10行Python代码计算汽车数量的实现方法
2019/10/23 Python
python实现井字棋小游戏
2020/03/04 Python
Python字符串hashlib加密模块使用案例
2020/03/10 Python
基于django 的orm中非主键自增的实现方式
2020/05/18 Python
python将YUV420P文件转PNG图片格式的两种方法
2021/01/22 Python
泰国排名第一的家居用品中心:HomePro
2020/11/18 全球购物
大学四年的个人自我评价
2014/01/14 职场文书
校运动会广播稿300字
2014/10/07 职场文书
成都人事代理协议书
2014/10/25 职场文书
云台山导游词
2015/02/03 职场文书
2015年度个人业务工作总结
2015/04/27 职场文书
Vue+Element UI实现概要小弹窗的全过程
2021/05/30 Vue.js