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 显示base64编码的二进制流网页图片
Apr 04 Javascript
jQuery 隐藏和显示 input 默认值示例
Jun 03 Javascript
javascript操作字符串的原生方法
Dec 22 Javascript
javascript实现获取字符串hash值
May 10 Javascript
javascript验证内容为数字以及长度为10的简单实例
Aug 20 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
Jan 04 Javascript
js控制一个按钮是否可点击(可使用)disabled的实例
Feb 14 Javascript
JS传参及动态修改页面布局
Apr 13 Javascript
浅谈Angular路由复用策略
Oct 04 Javascript
javaScript中的空值和假值
Dec 18 Javascript
用 Vue.js 递归组件实现可折叠的树形菜单(demo)
Dec 25 Javascript
原生JS实现轮播图效果
Oct 12 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
PHP函数utf8转gb2312编码
2006/12/21 PHP
php中显示数组与对象的实现代码
2011/04/18 PHP
PHP中使用json数据格式定义字面量对象的方法
2014/08/20 PHP
php实现微信和支付宝支付的示例代码
2020/08/11 PHP
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
jquery 字符串切割函数substring的用法说明
2014/02/11 Javascript
javascript实现的一个带下拉框功能的文本框
2014/05/08 Javascript
jquery序列化表单以及回调函数的使用示例
2014/07/02 Javascript
自编jQuery插件实现模拟alert和confirm
2014/09/01 Javascript
javascript面向对象之共享成员属性与方法及prototype关键字用法
2015/01/13 Javascript
jQuery显示和隐藏 常用的状态判断方法
2015/01/29 Javascript
js中跨域方法原理详解
2015/07/19 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
2016/12/19 Javascript
Angularjs在360兼容模式下取数据缓存问题的解决办法
2017/06/22 Javascript
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
Angularjs按需查询实例代码
2017/10/30 Javascript
jquery手机触屏滑动拼音字母城市选择器的实例代码
2017/12/11 jQuery
nodejs结合Socket.IO实现的即时通讯功能详解
2018/01/12 NodeJs
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
2019/02/21 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
taro小程序添加骨架屏的实现代码
2019/11/15 Javascript
Python新手实现2048小游戏
2015/03/31 Python
python 去除txt文本中的空格、数字、特定字母等方法
2018/07/24 Python
用python一行代码得到数组中某个元素的个数方法
2019/01/28 Python
Python基于机器学习方法实现的电影推荐系统实例详解
2019/06/25 Python
Django CBV模型源码运行流程详解
2020/08/17 Python
CSS3的 fit-content实现水平居中
2017/09/07 HTML / CSS
大学生创业计划书的格式要求
2013/12/29 职场文书
化工专业求职信
2014/07/01 职场文书
保密工作目标责任书
2014/07/28 职场文书
一年级语文下册复习计划
2015/01/17 职场文书
房地产销售经理岗位职责
2015/02/02 职场文书
教师研修随笔感言
2015/11/18 职场文书
2016教师校本研修心得体会
2016/01/08 职场文书
观看《信仰》心得体会
2016/01/15 职场文书
Nginx如何配置Http、Https、WS、WSS的方法步骤
2021/05/11 Servers