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 相关文章推荐
Aptana调试javascript图解教程
Nov 30 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
May 04 Javascript
Javascript中封装window.open解决不兼容问题
Sep 28 Javascript
js代码实现随机颜色的小方块
Jul 30 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
Sep 04 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
Sep 27 Javascript
js利用clipboardData实现截屏粘贴功能
Oct 12 Javascript
使用vue.js写一个tab选项卡效果
Mar 25 Javascript
AngularJS实现controller控制器间共享数据的方法示例
Oct 30 Javascript
微信小程序实现图片放大预览功能
Oct 22 Javascript
Vuex实现数据增加和删除功能
Nov 11 Javascript
vue中实现弹出层动画效果的示例代码
Sep 25 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
php实现的MySQL通用查询程序
2007/03/11 PHP
PHP中使用mktime获取时间戳的一个黑色幽默分析
2012/05/31 PHP
对象失去焦点时自己动提交数据的实现代码
2012/11/06 PHP
利用PHP+JS实现搜索自动提示(实例)
2013/06/09 PHP
PHP生成指定范围内的N个不重复的随机数
2019/03/18 PHP
jQueryMobile之Helloworld与页面切换的方法
2015/02/04 Javascript
jquery动态改变div宽度和高度
2015/02/09 Javascript
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
2015/04/01 Javascript
JS实现动态移动层及拖动浮层关闭的方法
2015/04/30 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
2016/03/28 Javascript
JS实现点击事件统计的简单实例
2016/07/10 Javascript
深入浅析knockout源码分析之订阅
2016/07/12 Javascript
jQuery数组处理函数整理
2016/08/03 Javascript
JavaScript中关于iframe滚动条的去除和保留
2016/11/17 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
微信小程序中显示html格式内容的方法
2017/04/25 Javascript
JS实现div模块的截图并下载功能
2017/10/17 Javascript
使用Angular CLI生成 Angular 5项目教程详解
2018/03/18 Javascript
vue实现组件之间传值功能示例
2018/07/13 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
使用vue制作滑动标签
2019/09/21 Javascript
微信小程序仿抖音视频之整屏上下切换功能的实现代码
2020/05/24 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:奇迹哥卡尔秀翻全场
2017/03/28 DOTA
Django基于ORM操作数据库的方法详解
2018/03/27 Python
numpy中loadtxt 的用法详解
2018/08/03 Python
浅谈pycharm使用及设置方法
2019/09/09 Python
Python Process多进程实现过程
2019/10/22 Python
python多项式拟合之np.polyfit 和 np.polyld详解
2020/02/18 Python
python爬虫实现获取下一页代码
2020/03/13 Python
django模板获取list中指定索引的值方式
2020/05/14 Python
django在开发中取消外键约束的实现
2020/05/20 Python
什么是数组名
2012/05/10 面试题
电子信息工程专业推荐信
2014/02/14 职场文书
办理房产证委托书
2014/09/18 职场文书
北京青年观后感
2015/06/15 职场文书
宣传部部长竞选稿
2015/11/21 职场文书