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 蒙版进度条(结合图片)
Mar 10 Javascript
九种js弹出对话框的方法总结
Mar 12 Javascript
简略说明Javascript中的= =(等于)与= = =(全等于)区别
Apr 16 Javascript
JavaScript用Number方法实现string转int
May 13 Javascript
js+cookies实现悬浮购物车的方法
May 25 Javascript
js实现div拖动动画运行轨迹效果代码分享
Aug 27 Javascript
JS定义类的六种方式详解
May 12 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
Jun 02 Javascript
javascript特殊文本输入框网页特效
Sep 13 Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
Sep 20 Javascript
解决webpack多页面内存溢出的方法示例
Oct 08 Javascript
微信小程序实现音频文件播放进度的实例代码
Mar 02 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
CI框架附属类用法分析
2018/12/26 PHP
PHP反射实际应用示例
2019/04/03 PHP
jQuery实现购物车表单自动结算效果实例
2015/08/10 Javascript
用JavaScript来美化HTML的select标签的下拉列表效果
2015/11/17 Javascript
Vue.js 父子组件通讯开发实例
2016/09/06 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
2017/02/15 Javascript
Vue.js中数据绑定的语法教程
2017/06/02 Javascript
Vue+Element使用富文本编辑器的示例代码
2017/08/14 Javascript
详解node单线程实现高并发原理与node异步I/O
2017/09/21 Javascript
原生实现一个react-redux的代码示例
2018/06/08 Javascript
js中getter和setter用法实例分析
2018/08/14 Javascript
默认浏览器设置及vue自动打开页面的方法
2018/09/21 Javascript
微信小程序中遇到的iOS兼容性问题小结
2018/11/14 Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
2019/09/21 jQuery
Layui数据表格之单元格编辑方式
2019/10/26 Javascript
微信小程序实现比较功能的方法汇总(五种方法)
2020/03/07 Javascript
[00:52]DOTA2齐天大圣预告片
2016/08/13 DOTA
Python实现批量把SVG格式转成png、pdf格式的代码分享
2014/08/21 Python
Python3 replace()函数使用方法
2018/03/19 Python
python适合人工智能的理由和优势
2019/06/28 Python
python3实现带多张图片、附件的邮件发送
2019/08/10 Python
Python any()函数的使用方法
2019/10/28 Python
Python脚本操作Excel实现批量替换功能
2019/11/20 Python
python实现大战外星人小游戏实例代码
2019/12/26 Python
python中count函数简单用法
2020/01/05 Python
获取python运行输出的数据并解析存为dataFrame实例
2020/07/07 Python
提高python代码运行效率的一些建议
2020/09/29 Python
L’AGENCE官网:加州女装品牌
2018/06/03 全球购物
班级入场式解说词
2014/02/01 职场文书
银行先进个人事迹材料
2014/05/11 职场文书
院党委组织查摆问题对照检查材料思想汇报2014
2014/10/08 职场文书
离婚财产分配协议书
2014/10/21 职场文书
创先争优活动个人总结
2015/03/04 职场文书
2015年世界环境日活动方案
2015/05/05 职场文书
汽车修理厂管理制度
2015/08/05 职场文书