jQuery之简单的表单验证实例


Posted in Javascript onJuly 07, 2016

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部分:

<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 相关文章推荐
JS 学习笔记 防止发生命名冲突
Jul 30 Javascript
JavaScript flash复制库类 Zero Clipboard
Jan 17 Javascript
弹出最简单的模式化遮罩层的js代码
Dec 04 Javascript
详解XMLHttpRequest(一)同步请求和异步请求
Sep 14 Javascript
Javascript中常见的逻辑题和解决方法
Sep 17 Javascript
Bootstrap Navbar Component实现响应式导航
Oct 08 Javascript
详解jquery validate实现表单验证 (正则表达式)
Jan 18 Javascript
vue better-scroll插件使用详解
Jan 25 Javascript
vue 获取视频时长的实例代码
Aug 20 Javascript
Node.js API详解之 Error模块用法实例分析
May 14 Javascript
纯js+css实现在线时钟
Aug 18 Javascript
Vue插槽_特殊特性slot,slot-scope与指令v-slot说明
Sep 04 Javascript
jQuery on()方法绑定动态元素的点击事件无响应的解决办法
Jul 07 #Javascript
Bootstrap3使用typeahead插件实现自动补全功能
Jul 07 #Javascript
Node.js DES加密的简单实现
Jul 07 #Javascript
使用bootstrap typeahead插件实现输入框自动补全之问题及解决办法
Jul 07 #Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
Jul 07 #Javascript
jQuery插件Flexslider实现图片轮播、图文结合滑动切换效果
Apr 16 #Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
Jul 07 #Javascript
You might like
php ZipArchive压缩函数详解实例
2013/11/06 PHP
ThinkPHP 3.2 数据分页代码分享
2014/10/14 PHP
PHP基于mcript扩展实现对称加密功能示例
2019/02/21 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
Aster vs Newbee BO3 第三场2.18
2021/03/10 DOTA
jquery获取table中的某行全部td的内容方法
2013/03/08 Javascript
详解jquery uploadify 上传文件
2013/11/09 Javascript
document.getElementById获取控件对象为空的解决方法
2013/11/20 Javascript
在jquery中的ajax方法怎样通过JSONP进行远程调用
2014/04/04 Javascript
js实现select跳转功能代码
2014/10/22 Javascript
node.js中的events.emitter.once方法使用说明
2014/12/10 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
2016/05/10 Javascript
React-router 4 按需加载的实现方式及原理详解
2017/05/25 Javascript
详解JS数据类型的值拷贝函数(深拷贝)
2017/07/13 Javascript
基于js 各种排序方法和sort方法的区别(详解)
2018/01/03 Javascript
解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题
2018/08/24 Javascript
vue柱状进度条图像的完美实现方案
2019/08/26 Javascript
JS变量提升及函数提升实例解析
2020/09/03 Javascript
实例解析Python的Twisted框架中Deferred对象的用法
2016/05/25 Python
浅谈django model的get和filter方法的区别(必看篇)
2017/05/23 Python
Python如何快速上手? 快速掌握一门新语言的方法
2017/11/14 Python
Python中实现最小二乘法思路及实现代码
2018/01/04 Python
Python图像处理之识别图像中的文字(实例讲解)
2018/05/10 Python
使用css3背景渐变中的透明度来设置不同颜色的背景渐变
2014/03/31 HTML / CSS
CSS3实现多背景展示效果通过CSS3定位多张背景
2014/08/10 HTML / CSS
美国家用电器和电子产品商店:Abt
2016/09/06 全球购物
viagogo英国票务平台:演唱会、体育比赛、戏剧门票
2017/03/24 全球购物
欧洲、亚洲、非洲和拉丁美洲的度假套餐:Great Value Vacations
2019/03/30 全球购物
Gerry Weber德国官网:优质女性时装,德国最大的时装公司之一
2019/11/02 全球购物
全球最大的生存食品、水和装备专用在线市场:BePrepared.com
2020/01/02 全球购物
六个一活动实施方案
2014/03/21 职场文书
合作投资意向书
2014/04/01 职场文书
幼儿园大班区域活动总结
2014/07/09 职场文书
房产授权委托书范本
2014/09/22 职场文书
2019感恩宣传标语!
2019/07/05 职场文书
Python爬虫入门案例之爬取二手房源数据
2021/10/16 Python