详解JavaScript中的表单验证


Posted in Javascript onJune 16, 2015

 表单验证用于发生在服务器,客户端已经输入所有必要的数据,然后按下提交按钮之后。如果一些已被输入的客户端的数据的已在错误形式或者被简单地丢失,则服务器将必须的所有数据发送回客户端,并请求的形式以正确的信息重新提交。这是一个漫长的过程,会增加服务器负担。

JavaScript中,提供了一种方法将其发送到web服务器之前验证客户端的计算机上的形式的数据。表单验证通常执行两种方式。

  1.     基本验证 - 首先,该表必须进行检查,以确保数据输入的需要将其每一个表单字段。这将通过表格的每个字段只需要循环,并检查数据。
  2.     数据格式验证 - 其次,该被输入的数据必须检查正确格式和值。这将需要放置更多的逻辑来测试数据的正确性。

我们将举一个例子来了解验证的过程。下面是简单的形式进行:

<html>
<head>
<title>Form Validation</title>
<script type="text/javascript">
<!--
// Form validation code will come here.
//-->
</script>
</head>
<body>
 <form action="/cgi-bin/test.cgi" name="myForm" 
     onsubmit="return(validate());">
 <table cellspacing="2" cellpadding="2" border="1">
 <tr>
  <td align="right">Name</td>
  <td><input type="text" name="Name" /></td>
 </tr>
 <tr>
  <td align="right">EMail</td>
  <td><input type="text" name="EMail" /></td>
 </tr>
 <tr>
  <td align="right">Zip Code</td>
  <td><input type="text" name="Zip" /></td>
 </tr>
 <tr>
 <td align="right">Country</td>
 <td>
 <select name="Country">
  <option value="-1" selected>[choose yours]</option>
  <option value="1">USA</option>
  <option value="2">UK</option>
  <option value="3">INDIA</option>
 </select>
 </td>
 </tr>
 <tr>
  <td align="right"></td>
  <td><input type="submit" value="Submit" /></td>
 </tr>
 </table>
 </form>
 </body>
 </html>

基本表单验证:

首先,我们将展示如何做一个基本的表单验证。在上面的表格要求validate()函数来验证数据在onsubmit事件发生。以下是validate()函数的实现:

<script type="text/javascript">
<!--
// Form validation code will come here.
function validate()
{
 
  if( document.myForm.Name.value == "" )
  {
   alert( "Please provide your name!" );
   document.myForm.Name.focus() ;
   return false;
  }
  if( document.myForm.EMail.value == "" )
  {
   alert( "Please provide your Email!" );
   document.myForm.EMail.focus() ;
   return false;
  }
  if( document.myForm.Zip.value == "" ||
      isNaN( document.myForm.Zip.value ) ||
      document.myForm.Zip.value.length != 5 )
  {
   alert( "Please provide a zip in the format #####." );
   document.myForm.Zip.focus() ;
   return false;
  }
  if( document.myForm.Country.value == "-1" )
  {
   alert( "Please provide your country!" );
   return false;
  }
  return( true );
}
//-->
</script>

 
数据格式验证:

现在,我们将看到我们如何将其提交到Web服务器之前,验证我们输入的表单数据。

这个例子说明了如何验证输入的电子邮件地址,这意味着电子邮件地址必须至少包含一个@符号和一个点(.)。此外,@绝不能是电子邮件地址的第一个字符,最后点必须在@符号后面的一个字符:

<script type="text/javascript">
<!--
function validateEmail()
{
 
  var emailID = document.myForm.EMail.value;
  atpos = emailID.indexOf("@");
  dotpos = emailID.lastIndexOf(".");
  if (atpos < 1 || ( dotpos - atpos < 2 )) 
  {
    alert("Please enter correct email ID")
    document.myForm.EMail.focus() ;
    return false;
  }
  return( true );
}
//-->
</script>
Javascript 相关文章推荐
JS Timing
Apr 21 Javascript
关于jQuery的inArray 方法介绍
Oct 08 Javascript
js验证电话号码与手机支持+86的正则表达式
Jan 23 Javascript
JavaScript实现的简单拖拽效果
Jun 01 Javascript
解决jquery中动态新增的元素节点无法触发事件问题的两种方法
Oct 30 Javascript
vue如何集成raphael.js中国地图的方法示例
Aug 15 Javascript
浅谈箭头函数写法在ReactJs中的使用
Aug 22 Javascript
vue打包后显示空白正确处理方法
Nov 01 Javascript
JS计算距当前时间的时间差实例
Dec 29 Javascript
详解es6超好用的语法糖Decorator
Aug 01 Javascript
Vue 中如何将函数作为 props 传递给组件的实现代码
May 12 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
Nov 12 Javascript
详解JavaScript中的异常处理方法
Jun 16 #Javascript
详解JavaScript对W3C DOM模版的支持情况
Jun 16 #Javascript
jQuery插件zepto.js简单实现tab切换
Jun 16 #Javascript
jQuery封装的tab选项卡插件分享
Jun 16 #Javascript
jquery插件splitScren实现页面分屏切换模板特效
Jun 16 #Javascript
简述JavaScript对传统文档对象模型的支持
Jun 16 #Javascript
纯javascript实现四方向文本无缝滚动效果
Jun 16 #Javascript
You might like
动易数据转成dedecms的php程序
2007/04/07 PHP
php通过修改header强制图片下载的方法
2015/03/24 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
PHP面向对象学习之parent::关键字
2017/01/18 PHP
php实现文件与16进制相互转换的方法示例
2017/02/16 PHP
转自Jquery官方 jQuery1.1.3发布,速度提升800%,体积保持20K
2007/08/19 Javascript
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
js 自动播放的实例代码
2013/11/19 Javascript
javascript:FF/Chrome与IE动态加载元素的区别说明
2014/01/26 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
asp知识整理笔记3(问答模式)
2015/09/27 Javascript
jQuery扩展+xml实现表单验证功能的方法
2016/12/25 Javascript
基于Vue.js实现tab滑块效果
2017/07/23 Javascript
AngularJS ionic手势事件的使用总结
2017/08/09 Javascript
微信小程序实现点击文字页面跳转功能【附源码下载】
2017/12/12 Javascript
webpack打包node.js后端项目的方法
2018/03/10 Javascript
详解vue-router 命名路由和命名视图
2018/06/01 Javascript
微信小程序中时间戳和日期的相互转换问题
2018/07/09 Javascript
JS解析后台返回的JSON格式数据实例
2018/08/06 Javascript
python实现从字典中删除元素的方法
2015/05/04 Python
Python读取word文本操作详解
2018/01/22 Python
python读取目录下最新的文件夹方法
2018/12/24 Python
python3 求约数的实例
2019/12/05 Python
python 获取当前目录下的文件目录和文件名实例代码详解
2020/03/10 Python
CSS3 translate导致字体模糊的实例代码
2019/08/30 HTML / CSS
Boston Proper官网:美国女装品牌
2017/10/30 全球购物
实习自我鉴定范文
2013/10/30 职场文书
校园自助餐厅的创业计划书
2013/12/26 职场文书
写自荐信要注意什么
2013/12/26 职场文书
电子商务应届生自我鉴定
2014/01/13 职场文书
《荷花》教学反思
2014/04/16 职场文书
群众路线专项整治方案
2014/10/27 职场文书
护士2014年终工作总结
2014/11/11 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
新学期感想
2015/08/10 职场文书
大学学生会主席竞选稿
2015/11/19 职场文书