jquery实现一个简单的表单验证实例


Posted in Javascript onMarch 30, 2016

表单验证在网站开发过程中经常遇到,我们可以使用服务器端语言验证,也可以使用客户端语言来验证。本文章向大家介绍jquery客户端验证表单的一个简单实例。实例仅作参考。

<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>
<script src="/Public/js/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
//<![CDATA[
$(function(){
    /*
    *思路大概是先为每一个required添加必填的标记,用each()方法来实现。
    *在each()方法中先是创建一个元素。然后通过append()方法将创建的元素加入到父元素后面。
    *这里面的this用的很精髓,每一次的this都对应着相应的input元素,然后获取相应的父元素。
    *然后为input元素添加失去焦点事件。然后进行用户名、邮件的验证。
    *这里用了一个判断is(),如果是用户名,做相应的处理,如果是邮件做相应的验证。
    *在jQuery框架中,也可以适当的穿插一写原汁原味的javascript代码。比如验证用户名中就有this.value,和this.value.length。对内容进行判断。
    *然后进行的是邮件的验证,貌似用到了正则表达式。
    *然后为input元素添加keyup事件与focus事件。就是在keyup时也要做一下验证,调用blur事件就行了。用triggerHandler()触发器,触发相应的事件。
    *最后提交表单时做统一验证
    *做好整体与细节的处理
    */
    //如果是必填的,则加红星标识.
    $("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>

以上这篇jquery实现一个简单的表单验证实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于jquery的代码显示区域自动拉长效果
Dec 07 Javascript
JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
Oct 11 Javascript
基于jQuery实现下拉收缩(展开与折叠)特效
Dec 25 Javascript
jQuery $.extend()用法总结
Jun 15 Javascript
JavaScript事件学习小结(三)js事件对象
Jun 09 Javascript
微信小程序 在线支付功能的实现
Mar 14 Javascript
js 取消页面可以选中文字的功能方法
Jan 02 Javascript
微信小程序实现验证码获取倒计时效果
Feb 08 Javascript
Vue实现带进度条的文件拖动上传功能
Feb 23 Javascript
vue2.0路由切换后页面滚动位置不变BUG的解决方法
Mar 14 Javascript
JavaScript设计模式之代理模式实例分析
Jan 16 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
Jul 12 Javascript
js实现密码强度检测【附示例】
Mar 30 #Javascript
原生javascript实现的一个简单动画效果
Mar 30 #Javascript
纯js代码制作的网页时钟特效【附实例】
Mar 30 #Javascript
JS 实现倒计时数字时钟效果【附实例代码】
Mar 30 #Javascript
详解JavaScript for循环中发送AJAX请求问题
Jun 23 #Javascript
Jquery判断form表单数据是否变化
Mar 30 #Javascript
基于javascript实现tab选项卡切换特效调试笔记
Mar 30 #Javascript
You might like
PHP中的CMS的涵义
2007/03/11 PHP
MySQL时间字段究竟使用INT还是DateTime的说明
2012/02/27 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
PHP仿微信发红包领红包效果
2016/10/30 PHP
thinkPHP5.1框架使用SemanticUI实现分页功能示例
2019/08/03 PHP
javascript开发随笔二 动态加载js和文件
2011/11/25 Javascript
Javascript获取表单名称(name)的方法
2015/04/02 Javascript
javascript实现手机震动API代码
2015/08/05 Javascript
AngularJs 指令详解及示例代码
2016/09/01 Javascript
预防网页挂马的方法总结
2016/11/03 Javascript
bootstrap基本配置_动力节点Java学院整理
2017/07/14 Javascript
js断点调试心得分享(必看篇)
2017/12/08 Javascript
JS中移除非数字最多保留一位小数
2018/05/09 Javascript
如何在vue里添加好看的lottie动画
2018/08/02 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
Python使用Beautiful Soup包编写爬虫时的一些关键点
2016/01/20 Python
Python 如何访问外围作用域中的变量
2016/09/11 Python
Python处理文本文件中控制字符的方法
2017/02/07 Python
scrapy爬虫实例分享
2017/12/28 Python
pandas数据分组和聚合操作方法
2018/04/11 Python
python操作xlsx文件的包openpyxl实例
2018/05/03 Python
Python闭包思想与用法浅析
2018/12/27 Python
Python进阶之全面解读高级特性之切片
2019/02/19 Python
深入浅析python的第三方库pandas
2020/02/13 Python
python 函数嵌套及多函数共同运行知识点讲解
2020/03/03 Python
python中如何打包用户自定义模块
2020/09/23 Python
No7 Beauty美国官网:英国国民护肤品牌
2019/10/31 全球购物
英国自行车商店:AW Cycles
2021/02/24 全球购物
应届生.NET方向面试题
2015/05/23 面试题
仓管员岗位职责范文
2013/11/08 职场文书
区域经理岗位职责
2015/02/02 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书
浙江省杭州市平均工资标准是多少?
2019/07/09 职场文书
CSS实现章节添加自增序号的方法
2021/06/23 HTML / CSS
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
2021/06/26 MySQL
Android RecyclerView实现九宫格效果
2022/06/28 Java/Android