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 相关文章推荐
JavaScript isArray()函数判断对象类型的种种方法
Oct 11 Javascript
多个js与css文件的合并方法详细说明
Dec 26 Javascript
jQuery.each使用详解
Jul 07 Javascript
基于jQuery实现的打字机效果
Jan 16 Javascript
jQuery实现鼠标经过显示动画边框特效
Mar 24 jQuery
JS实现异步上传压缩图片
Apr 22 Javascript
js+html制作简单日历的方法
Jun 27 Javascript
vue.js 实现点击按钮动态添加li的方法
Sep 07 Javascript
使用jquery Ajax实现上传附件功能
Oct 23 jQuery
Vue 引入AMap高德地图的实现代码
Apr 29 Javascript
javascript系统时间设置操作示例
Jun 17 Javascript
详解小程序BackgroundAudioManager踩坑之旅
Dec 08 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和ACCESS写聊天室(九)
2006/10/09 PHP
PHP输出缓存ob系列函数详解
2014/03/11 PHP
PHP实现移除数组中为空或为某值元素的方法
2017/01/07 PHP
浅谈PHP中的错误处理和异常处理
2017/02/04 PHP
PHP程序员学习使用Swoole的理由
2018/06/24 PHP
PHP7 字符串处理机制修改
2021/03/09 PHP
用javascript实现自定义标签
2007/05/08 Javascript
javascript instanceof,typeof的区别
2010/03/24 Javascript
js对table的td进行相同内容合并示例详解
2013/12/27 Javascript
jquery选择器需要注意的问题
2014/11/26 Javascript
Angular.js去除页面中显示的空行方法示例
2017/03/30 Javascript
Vue.js中数据绑定的语法教程
2017/06/02 Javascript
详述 Sublime Text 打开 GBK 格式中文乱码的解决方法
2017/10/26 Javascript
JavaScript调用模式与this关键字绑定的关系
2018/04/21 Javascript
ES6使用export和import实现模块化的方法
2018/09/10 Javascript
jquery.param()实现数组或对象的序列化方法
2018/10/08 jQuery
vue项目搭建以及全家桶的使用详细教程(小结)
2018/12/19 Javascript
图文详解vue框架安装步骤
2019/02/12 Javascript
jQuery操作cookie的示例代码
2019/06/05 jQuery
Vue.js组件实现选项卡以及切换特效
2019/07/24 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
2019/10/14 Javascript
[03:33]TI9战队采访 - Infamous
2019/08/20 DOTA
Python中operator模块的操作符使用示例总结
2016/06/28 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
django实现将修改好的新模型写入数据库
2020/03/31 Python
python topk()函数求最大和最小值实例
2020/04/02 Python
Python容器类型公共方法总结
2020/08/19 Python
HTML5 canvas基本绘图之填充样式实现
2016/06/27 HTML / CSS
详解移动端h5页面根据屏幕适配的四种方案
2020/04/15 HTML / CSS
Java的for语句中break, continue和return的区别
2013/12/19 面试题
数据库笔试题
2013/05/09 面试题
顶碗少年教学反思
2014/02/21 职场文书
给老师的一封感谢信
2015/01/20 职场文书
Mysql官方性能测试工具mysqlslap的使用简介
2021/05/21 MySQL
vue基于Teleport实现Modal组件
2021/05/31 Vue.js
SpringBoot项目部署到阿里云服务器的实现步骤
2022/06/28 Java/Android