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 相关文章推荐
网页中的图片的处理方法与代码
Nov 26 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
Jun 30 Javascript
常用Javascript函数与原型功能收藏(必看篇)
Oct 09 Javascript
微信小程序 scroll-view组件实现列表页实例代码
Dec 14 Javascript
jQuery插件echarts实现的单折线图效果示例【附demo源码下载】
Mar 04 Javascript
教你用十行node.js代码读取docx的文本
Mar 08 Javascript
使用D3.js创建物流地图的示例代码
Jan 27 Javascript
微信小程序中实现手指缩放图片的示例代码
Mar 13 Javascript
Angular 组件之间的交互的示例代码
Mar 24 Javascript
javascript绘制简单钟表效果
Apr 07 Javascript
纯JS开发baguetteBox.js响应式画廊插件
Jun 28 Javascript
详解TypeScript中的类型保护
Apr 29 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
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
PHP中COOKIES使用示例
2015/07/26 PHP
Laravel5框架自定义错误页面配置操作示例
2019/04/17 PHP
用Javascript 获取页面元素的位置的代码
2009/09/25 Javascript
JavaScript中用字面量创建对象介绍
2014/12/31 Javascript
JavaScript中return false的用法
2015/03/12 Javascript
JavaScript中Null与Undefined的区别解析
2015/06/30 Javascript
JavaScript String 对象常用方法详解
2016/05/13 Javascript
AngularJS模板加载用法详解
2016/11/04 Javascript
JS实现焦点图轮播效果的方法详解
2016/12/19 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
2018/03/22 Javascript
JS使用tween.js动画库实现轮播图并且有切换功能
2018/07/17 Javascript
如何将百度地图包装成Vue的组件的方法步骤
2019/02/12 Javascript
[33:23]Secret vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python3.5使用tkinter制作记事本
2016/06/20 Python
解决Python中字符串和数字拼接报错的方法
2016/10/23 Python
Python MD5加密实例详解
2017/08/02 Python
Python对象属性自动更新操作示例
2018/06/15 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
2018/10/16 Python
解决python3 requests headers参数不能有中文的问题
2019/08/21 Python
导入tensorflow时报错:cannot import name 'abs'的解决
2019/10/10 Python
Python操作Jira库常用方法解析
2020/04/10 Python
python Scrapy爬虫框架的使用
2021/01/21 Python
ManoMano英国:欧洲第一家专注于DIY和园艺市场的电商平台
2020/03/12 全球购物
光声世纪笔试题目
2012/08/25 面试题
采购员岗位职责
2013/11/15 职场文书
消防先进事迹材料
2014/02/10 职场文书
《油菜花开了》教学反思
2014/02/22 职场文书
什么是就业协议书
2014/04/17 职场文书
小学运动会报道稿
2014/10/04 职场文书
党的群众路线教育实践活动个人对照检查材料(公安)
2014/11/05 职场文书
SQL注入的实现以及防范示例详解
2021/06/02 MySQL
JavaScript异步操作中串行和并行
2021/11/20 Javascript
java实现web实时消息推送的七种方案
2022/07/23 Java/Android