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 相关文章推荐
关于实现代码语法标亮 dp.SyntaxHighlighter
Feb 02 Javascript
用js实现预览待上传的本地图片
Mar 15 Javascript
jQuery 改变CSS样式基础代码
Feb 11 Javascript
基于jquery的网页SELECT下拉框美化代码
Oct 28 Javascript
JQueryEasyUI datagrid框架的基本使用
Apr 08 Javascript
基于JavaScript实现继承机制之调用call()与apply()的方法详解
May 07 Javascript
原生js实现数字字母混合验证码的简单实例
Dec 10 Javascript
学习使用bootstrap基本控件(table、form、button)
Apr 12 Javascript
jQuery内存泄露解决办法
Dec 13 Javascript
浅谈vuepress 踩坑记
Apr 18 Javascript
jQuery事件blur()方法的使用实例讲解
Mar 30 jQuery
微信小程序本地存储实现每日签到、连续签到功能
Oct 09 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
dede3.1分页文字采集过滤规则详说(图文教程)
2007/04/03 PHP
php实现留言板功能(会话控制)
2017/05/23 PHP
PHP框架laravel的.env文件配置教程
2017/06/07 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
为Yahoo! UI Extensions Grid增加内置的可编辑器
2007/03/10 Javascript
javascript 多浏览器 事件大全
2010/03/23 Javascript
jQuery Tools tab使用介绍
2012/07/14 Javascript
Jquery取得iframe下内容的方法
2013/11/18 Javascript
jquery 实现两级导航菜单附效果图
2014/03/07 Javascript
判断js的Array和Object的实现方法
2016/08/29 Javascript
微信小程序 Audio API详解及实例代码
2016/09/30 Javascript
jQuery鼠标事件总结
2016/10/13 Javascript
vue组件讲解(is属性的用法)模板标签替换操作
2020/09/04 Javascript
[01:10]3.19DOTA2发布会 三代刀塔人第一代
2014/03/25 DOTA
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
Window环境下Scrapy开发环境搭建
2018/11/18 Python
pytorch 转换矩阵的维数位置方法
2018/12/08 Python
Python基于Tkinter模块实现的弹球小游戏
2018/12/27 Python
详解Python爬取并下载《电影天堂》3千多部电影
2019/04/26 Python
python 实现兔子生兔子示例
2019/11/21 Python
pycharm如何实现跨目录调用文件
2020/02/28 Python
Python多线程通信queue队列用法实例分析
2020/03/24 Python
Python多线程threading创建及使用方法解析
2020/06/17 Python
python3.7添加dlib模块的方法
2020/07/01 Python
django template实现定义临时变量,自定义赋值、自增实例
2020/07/12 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
Python爬虫之Selenium设置元素等待的方法
2020/12/04 Python
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
春季防火方案
2014/05/10 职场文书
三月雷锋月活动总结
2014/07/03 职场文书
做人民满意的公务员活动方案
2014/08/25 职场文书
处级领导干部四风问题自我剖析材料
2014/09/29 职场文书
初二学生评语大全
2014/12/26 职场文书
Pytest中skip和skipif的具体使用方法
2021/06/30 Python