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 动态添加按钮实现代码
May 06 Javascript
ExtJS PropertyGrid中使用Combobox选择值问题
Jun 13 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
Dec 27 Javascript
JS关键字变色实现思路及代码
Feb 21 Javascript
PHP abstract与interface之间的区别
Nov 11 Javascript
JScript中的条件注释详解
Apr 24 Javascript
JS中对Cookie的操作详解
Aug 05 Javascript
详解vue服务端渲染(SSR)初探
Jun 19 Javascript
Bootstrap table使用方法记录
Aug 23 Javascript
微信小程序wx:for循环的实例详解
Oct 07 Javascript
详解为生产环境编译Angular2应用的方法
Dec 10 Javascript
Vue 动态组件components和v-once指令的实现
Aug 30 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
晶体管来复再生式二管收音机
2021/03/02 无线电
基于mysql的论坛(4)
2006/10/09 PHP
phpmyadmin 3.4 空密码登录的实现方法
2010/05/29 PHP
php循环语句 for()与foreach()用法区别介绍
2012/09/05 PHP
浅析php数据类型转换
2014/01/09 PHP
php+highchats生成动态统计图
2014/05/21 PHP
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
php数组函数array_walk用法示例
2016/05/26 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
2017/05/05 PHP
extJs 下拉框联动实现代码
2010/04/09 Javascript
让人期待的2011年度最佳 jQuery 插件分享
2012/03/16 Javascript
JS小功能(操作Table--动态添加删除表格及数据)实现代码
2013/11/28 Javascript
jQuery DOM删除节点操作指南
2015/03/03 Javascript
JS实现刷新父页面不弹出提示框的方法
2016/06/22 Javascript
js无提示关闭浏览器窗口的两种方法分析
2016/11/06 Javascript
Node.js自定义实现文件路由功能
2017/09/22 Javascript
jquery实现搜索框功能实例详解
2018/07/23 jQuery
4个顶级JavaScript高级文本编辑器
2018/10/10 Javascript
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
2018/10/26 jQuery
如何使用JavaScript实现栈与队列
2019/06/24 Javascript
JS数组转字符串实现方法解析
2020/09/04 Javascript
[49:35]KG vs SECRET 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
[44:43]完美世界DOTA2联赛决赛日 FTD vs GXR 第一场 11.08
2020/11/11 DOTA
python基础教程之popen函数操作其它程序的输入和输出示例
2014/02/10 Python
Python中SOAP项目的介绍及其在web开发中的应用
2015/04/14 Python
Python上传package到Pypi(代码简单)
2016/02/06 Python
理解python中生成器用法
2017/12/20 Python
Python实现Pig Latin小游戏实例代码
2018/02/02 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
2019/06/03 Python
Series和DataFrame使用简单入门
2019/11/13 Python
Python: 传递列表副本方式
2019/12/19 Python
scrapy redis配置文件setting参数详解
2020/11/18 Python
基层干部十八大感言
2014/01/19 职场文书
团队经理竞聘书
2014/03/31 职场文书
公司离职证明范本(5篇)
2014/09/17 职场文书