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 相关文章推荐
一个无限级XML绑定跨框架菜单(For IE)
Jan 27 Javascript
用javascript实现的仿Flash广告图片轮换效果
Apr 24 Javascript
Jquery中val()表单取值赋值的实例代码
Aug 15 Javascript
简单时间提示DEMO从0开始一直进行计时
Nov 19 Javascript
轻松掌握JavaScript中介者模式
Aug 26 Javascript
AngularJS中关于ng-class指令的几种实现方式详解
Sep 17 Javascript
真正好用的js验证上传文件大小的简单方法
Oct 27 Javascript
vue如何引用其他组件(css和js)
Apr 13 Javascript
Js利用prototype自定义数组方法示例
Oct 20 Javascript
vue2.0 子组件改变props值,并向父组件传值的方法
Mar 01 Javascript
JavaScript实现京东放大镜效果
Dec 03 Javascript
详解Vue的ref特性的使用
Jan 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
教你如何把一篇文章按要求分段
2006/10/09 PHP
PHP统计目录下的文件总数及代码行数(去除注释及空行)
2011/01/17 PHP
PHP setcookie设置Cookie用法(及设置无效的问题)
2011/07/13 PHP
PHP访问数据库集群的方法小结
2016/03/14 PHP
PHP的cookie与session原理及用法详解
2019/09/27 PHP
PHP页面静态化――纯静态与伪静态用法详解
2020/06/05 PHP
jquery封装的对话框简单实现
2013/07/21 Javascript
JS页面延迟执行一些方法(整理)
2013/11/11 Javascript
在每个匹配元素的外部插入新元素的方法
2013/12/20 Javascript
JS实现向表格行添加新单元格的方法
2015/03/30 Javascript
浅析javascript的return语句
2015/12/15 Javascript
js动态添加的DIV中的onclick事件简单实例
2016/07/25 Javascript
微信小程序 轮播图swiper详解及实例(源码下载)
2017/01/11 Javascript
WebStorm ES6 语法支持设置&amp;babel使用及自动编译(详解)
2017/09/08 Javascript
详解基于Vue cli生成的Vue项目的webpack4升级
2018/06/19 Javascript
JS删除String里某个字符的方法
2021/01/06 Javascript
ECharts地图绘制和钻取简易接口详解
2019/07/12 Javascript
vue.js路由mode配置之去掉url上默认的#方法
2019/11/01 Javascript
[50:15]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
跟老齐学Python之变量和参数
2014/10/10 Python
Python读写ini文件的方法
2015/05/28 Python
python编程实现归并排序
2017/04/14 Python
Pycharm 创建 Django admin 用户名和密码的实例
2018/05/30 Python
对python中的iter()函数与next()函数详解
2018/10/18 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
新年福利来一波之Python轻松集齐五福(demo)
2020/01/20 Python
英国计算机商店:Technextday
2019/12/28 全球购物
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
自动化专业本科毕业生求职信
2013/10/20 职场文书
自动化专业个人求职信范文
2013/12/30 职场文书
点菜员岗位职责范本
2014/02/14 职场文书
股权收购意向书
2014/04/01 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
2014年小学图书室工作总结
2014/12/09 职场文书
运动会通讯稿100字
2015/07/20 职场文书
Python实现视频自动打码的示例代码
2022/04/08 Python