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 相关文章推荐
由prototype_1.3.1进入javascript殿堂-类的初探
Nov 06 Javascript
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
Oct 26 Javascript
jquery得到iframe src属性值的方法
Sep 25 Javascript
原生js实现移动开发轮播图、相册滑动特效
Apr 17 Javascript
Juery解决tablesorter中文排序和字符范围的方法
May 06 Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
May 29 Javascript
浅谈JavaScript中promise的使用
Jan 11 Javascript
手机注册发送验证码倒计时的简单实例
Nov 15 Javascript
使用JS模拟锚点跳转的实例
Feb 01 Javascript
vue中如何实现pdf文件预览的方法
Jul 12 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
Jul 09 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
Nov 24 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中的正规表达式(二)
2006/10/09 PHP
PHP JSON 数据解析代码
2010/05/26 PHP
使用PHP备份MySQL和网站发送到邮箱实例代码
2013/11/28 PHP
PHP模块化安装教程
2016/06/01 PHP
php set_include_path函数设置 include_path 配置选项
2016/10/30 PHP
符合W3C网页标准的iframe标签的使用方法
2007/07/19 Javascript
qTip 基于JQuery的Tooltip插件[兼容性好]
2010/09/01 Javascript
js获取当前页面的url网址信息
2014/06/12 Javascript
AngularJS在IE8的不支持的解决方法
2016/05/13 Javascript
JavaScript知识点总结(十六)之Javascript闭包(Closure)代码详解
2016/05/31 Javascript
JavaScipt选取文档元素的方法(推荐)
2016/08/05 Javascript
基于require.js的使用(实例讲解)
2017/09/07 Javascript
JS实现的全排列组合算法示例
2017/10/09 Javascript
你可能不知道的前端算法之文字避让(inMap)
2018/01/12 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
vue移动端下拉刷新和上拉加载的实现代码
2018/09/08 Javascript
详解Vue中数组和对象更改后视图不刷新的问题
2018/09/21 Javascript
javascrit中undefined和null的区别详解
2019/04/07 Javascript
小程序云开发获取不到数据库记录的解决方法
2019/05/18 Javascript
解决layui中onchange失效以及form动态渲染失效的问题
2019/09/27 Javascript
JavaScript碰撞检测原理及其实现代码
2020/03/12 Javascript
[01:11]steam端dota2实名认证操作流程视频
2021/03/11 DOTA
python实现图片批量剪切示例
2014/03/25 Python
python利用requests库模拟post请求时json的使用教程
2018/12/07 Python
pytorch之Resize()函数具体使用详解
2020/02/27 Python
python 比较字典value的最大值的几种方法
2020/04/17 Python
python中rc1什么意思
2020/06/19 Python
Python urllib库如何添加headers过程解析
2020/10/05 Python
anello泰国官方网站:日本流行包包品牌
2019/08/08 全球购物
Hotels.com拉丁美洲:从豪华酒店到经济型酒店的预定优惠和折扣
2019/12/09 全球购物
泰国第一在线超市:Tops
2021/02/13 全球购物
工商企业管理应届生求职信
2013/11/03 职场文书
铁路工务反思材料
2014/02/07 职场文书
建国大业电影观后感
2015/06/01 职场文书
天气温馨提示语
2015/07/14 职场文书
浅谈MySQL user权限表
2021/06/18 MySQL