jquery验证邮箱格式并显示提交按钮


Posted in Javascript onNovember 07, 2015

简要教程
简洁、大方和直观的用户界面是我们最喜欢的网页设计。本文介绍的正是这样的一个设计风格。

jquery验证邮箱格式并显示提交按钮

jquery验证邮箱格式并显示提交按钮

如何才能做到页面的简洁大方并且人性化?大多数网站的表单采用文本提示的方法,提示用户哪里填写错了,哪里不正确,但我们应该能做得更好:填写不正确就不显示提交按钮!
HTML结构

<form class="newsletter">
 <input type="email" value="" placeholder="Enter your email address" />
 <input type="submit" value="OK" />
</form>

JAVASCRIPT:
检查输入的文本是否为一个正确的email地址,如果正确,就给表单添加特定的样式,否则不添加,通过css来控制这个样式是否显示按钮。
依赖于jQuery的做法:

$( function( $, window, document, undefined )
{
 'use strict';
 
 var form  = '.newsletter',
  className = 'newsletter--active',
  email  = 'input[type="email"]';
 
 $( form ).each( function()
 {
  var $form = $( this ),
   $email = $form.find( email ),
   val  = '';
 
  $email.on( 'keyup.addClassWhenEmail', function()
  {
   val = $email.val();
   $form.toggleClass( className, val != '' && /^([\w-\.]+@([\w-]+\.)+[\w-]{2,12})?$/.test( val ) );
  });
 });
})( jQuery, window, document );

以上代码兼容IE6以上的浏览器
如果你想关闭这项功能,可以通过关闭名称空间addClassWhenEmail来实现。

$( '.newsletter input[type="email"]' ).off( '.addClassWhenEmail' );

不使用jQuery,纯javascript的做法:

;( function( window, document, undefined )
{
 'use strict';
 
 var form  = '.newsletter',
  className = 'newsletter--active',
  email  = 'input[type="email"]',
 
  addEventListener = function( element, event, handler )
  {
   element.addEventListener ? element.addEventListener( event, handler ) : element.attachEvent( 'on' + event, function(){ handler.call( element ); });
  },
  forEach = function( elements, fn )
  {
   for( var i = 0; i < elements.length; i++ ) fn( elements[ i ], i );
  },
  addClass = function( element, className )
  {
   element.classList ? element.classList.add( className ) : element.className += ' ' + className;
  },
  removeClass = function( element, className )
  {
   element.classList ? element.classList.remove( className ) : element.className += element.className.replace( new RegExp( '(^|\\b)' + className.split( ' ' ).join( '|' ) + '(\\b|$)', 'gi' ), ' ' );
  };
 
 forEach( document.querySelectorAll( form ), function( $form )
 {
  var $email = $form.querySelectorAll( email );
 
  if( $email.length )
  {
   $email = $email[ 0 ];
   addEventListener( $email, 'keyup', function()
   {
    $email.value != '' && /^([\w-\.]+@([\w-]+\.)+[\w-]{2,12})?$/.test( $email.value ) ? addClass( $form, className ) : removeClass( $form, className );
   });
  }
 });
})( window, document );

以上代码兼容IE8+以及所有现代浏览器。
可用参数
这里有三个参数可以用来改变选择器:

var form  = '.newsletter',   // form selector
className = 'newsletter--active',  // class name for form when correct email is entered
email  = 'input[type="email"]', // email input field selector

 CSS代码
js代码用来切换样式,真正显示于隐藏则通过css来实现:

.newsletter:not( .newsletter--active ) input[type='submit']
{
 display: none;
}

以上就是为大家分享的jquery验证邮箱格式并显示提交按钮的方法,希望对大家的学习有所帮助。

Javascript 相关文章推荐
javascript 简单抽屉效果的实现代码
Mar 09 Javascript
jquery 多级下拉菜单核心代码
May 21 Javascript
jQuery中extend函数详解
Feb 13 Javascript
jQuery热气球动画半透明背景的后台登录界面代码分享
Aug 28 Javascript
jquery UI Datepicker时间控件的使用方法(终结版)
Nov 07 Javascript
微信js-sdk地理位置接口用法示例
Oct 12 Javascript
Angular.js实现注册系统的实例详解
Dec 18 Javascript
Javascript 高性能之递归,迭代,查表法详解及实例
Jan 08 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
Mar 30 jQuery
利用 spin.js 生成等待效果(js 等待效果)
Jun 25 Javascript
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
Feb 19 Javascript
JS数组属性去重并校验重复数据
Jan 10 Javascript
jquery判断当前浏览器的实现代码
Nov 07 #Javascript
jQuery插件开发精品教程(让你的jQuery更上一个台阶)
Nov 07 #Javascript
js识别uc浏览器的代码
Nov 06 #Javascript
详解javascript数组去重问题
Nov 06 #Javascript
基于JavaScript实现仿京东图片轮播效果
Nov 06 #Javascript
实现非常简单的js双向数据绑定
Nov 06 #Javascript
浅析javascript中的事件代理
Nov 06 #Javascript
You might like
咖啡店都有些什么常规豆子呢?有什么风味在里面
2021/03/04 咖啡文化
phpfans留言版用到的install.php
2007/01/04 PHP
php笔记之常用文件操作
2010/10/12 PHP
php图片的二进制转换实现方法
2014/12/15 PHP
Opcache导致php-fpm崩溃nginx返回502
2015/03/02 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
2015/12/22 PHP
jquery scrollTop方法根据滚动像素显示隐藏顶部导航条
2013/05/27 Javascript
JS 打印功能代码可实现打印预览、打印设置等
2014/10/31 Javascript
Javascript实现的Map集合工具类完整实例
2015/07/31 Javascript
js实现跨域的4种实用方法原理分析
2015/10/29 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
2015/11/25 Javascript
轻松学习Javascript闭包函数
2015/12/15 Javascript
初步使用Node连接Mysql数据库
2016/03/03 Javascript
完美解决IE9浏览器出现的对象未定义问题
2016/09/29 Javascript
微信小程序 navigation API实例详解
2016/10/02 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
使用BootStrap实现悬浮窗口的效果
2016/12/13 Javascript
Bootstrap笔记—折叠实例代码
2017/03/13 Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
2017/07/16 Javascript
AngularJS 事件发布机制
2018/08/28 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
了解javascript中let和var及const关键字的区别
2019/05/24 Javascript
如何自定义微信小程序tabbar上边框的颜色
2019/07/09 Javascript
[49:41]NB vs NAVI Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
python实现给字典添加条目的方法
2014/09/25 Python
浅谈python类属性的访问、设置和删除方法
2016/07/25 Python
Python实现爬取需要登录的网站完整示例
2017/08/19 Python
彻底理解Python中的yield关键字
2019/04/01 Python
python GUI库图形界面开发之PyQt5计数器控件QSpinBox详细使用方法与实例
2020/02/28 Python
Python基于callable函数检测对象是否可被调用
2020/10/16 Python
用css3写出气球样式的示例代码
2017/09/11 HTML / CSS
下面这个程序执行后会有什么错误或者效果
2014/11/03 面试题
输入一行文字,找出其中大写字母、小写字母、空格、数字、及其他字符各有多少
2016/04/15 面试题
企业演讲稿范文
2013/12/28 职场文书
个人先进事迹总结
2015/02/26 职场文书
2016秋季田径运动会广播稿
2015/12/21 职场文书