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继承(上)——对象构建介绍
Nov 08 Javascript
JavaScript中的substr()方法使用详解
Jun 06 Javascript
详解Angularjs中的依赖注入
Mar 11 Javascript
JS当前页面登录注册框,固定DIV,底层阴影的实例代码
Sep 29 Javascript
JavaScript在form表单中使用button按钮实现submit提交方法
Jan 23 Javascript
理解Angular的providers给Http添加默认headers
Jul 04 Javascript
node.js中grunt和gulp的区别详解
Jul 17 Javascript
Vue中的v-for指令不起效果的解决方法
Sep 27 Javascript
laydate时间日历插件使用方法详解
Nov 14 Javascript
vue拖拽组件使用方法详解
Dec 01 Javascript
JS合并两个数组的3种方法详解
Oct 24 Javascript
vue2和vue3的v-if与v-for优先级对比学习
Oct 10 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句法规则详解 入门学习
2011/11/09 PHP
PHP取二进制文件头快速判断文件类型的实现代码
2013/08/05 PHP
PHP生成随机密码类分享
2014/06/25 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
2018/09/26 PHP
Laravel5.4框架使用socialite实现github登录的方法
2019/03/20 PHP
调试php程序的简单步骤
2019/10/04 PHP
php 实现银联商务H5支付的示例代码
2019/10/12 PHP
替代window.event.srcElement效果的可兼容性的函数
2009/12/18 Javascript
JS 按钮点击触发(兼容IE、火狐)
2013/08/07 Javascript
js实现倒计时时钟的示例代码
2013/12/17 Javascript
javascript自定义函数参数传递为字符串格式
2014/07/29 Javascript
javascript实现避免页面按钮重复提交
2015/01/08 Javascript
使用jQuery判断浏览器滚动条位置的方法
2016/05/30 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
微信小程序 配置文件详细介绍
2016/12/14 Javascript
让div运动起来 js实现缓动效果
2017/07/06 Javascript
vue中的计算属性的使用和vue实例的方法示例
2017/12/04 Javascript
Vue动态生成el-checkbox点击无法赋值的解决方法
2019/02/21 Javascript
webpack4 配置 ssr 环境遇到“document is not defined”
2019/10/24 Javascript
Python的ORM框架SQLAlchemy入门教程
2014/04/28 Python
详细解读Python的web.py框架下的application.py模块
2015/05/02 Python
python读取和保存图片5种方法对比
2018/09/12 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
2019/07/06 Python
基于Python实现拆分和合并GIF动态图
2019/10/22 Python
使用python代码进行身份证号校验的实现示例
2019/11/21 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
2020/10/26 Python
印尼披萨外送专家:Domino’s Pizza印尼
2017/12/28 全球购物
从当地商店送来的杂货:Instacart
2018/08/19 全球购物
香港演唱会订票网站:StubHub香港
2019/10/10 全球购物
电子商务专业个人的自我评价分享
2013/10/29 职场文书
2014年元旦感言
2014/03/06 职场文书
南京青奥会口号
2014/06/12 职场文书
SQL实现LeetCode(196.删除重复邮箱)
2021/08/07 MySQL
详细聊聊浏览器是如何看闭包的
2021/11/11 Javascript
Windows server 2012 NTP时间同步的实现
2022/06/25 Servers