详解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 相关文章推荐
extjs 学习笔记(三) 最基本的grid
Oct 15 Javascript
javascript 不间断的图片滚动并可点击
Jan 15 Javascript
jQuery 开发者应该注意的9个错误
May 03 Javascript
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
Jan 27 Javascript
JavaScript中调用函数的4种方式代码实例
Jul 08 Javascript
Vue.js 表单校验插件
Aug 14 Javascript
canvas实现探照灯效果
Feb 07 Javascript
layui导航栏实现代码
May 19 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
Jun 20 Javascript
js封装成插件_Canvas统计图插件编写实例
Sep 12 Javascript
Angular使用Md5加密的解决方法
Sep 16 Javascript
vue+axios+element ui 实现全局loading加载示例
Sep 11 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
PHP生成HTML静态页面实例代码
2008/08/31 PHP
php设计模式 Strategy(策略模式)
2011/06/26 PHP
PHP 使用pcntl和libevent 实现Timer功能
2013/10/27 PHP
PHP函数getenv简介和使用实例
2014/05/12 PHP
php数组去除空值函数分享
2015/02/02 PHP
php实现字符串首字母大写和单词首字母大写的方法
2015/03/14 PHP
phpstudy隐藏index.php的方法
2020/09/21 PHP
Firebug入门指南(Firefox浏览器)
2010/08/21 Javascript
日历查询的算法 如何计算某一天是星期几
2012/12/12 Javascript
Javascript函数式编程简单介绍
2015/10/11 Javascript
jQuery给div,Span, a ,button, radio 赋值与取值
2016/06/24 Javascript
用file标签实现多图文件上传预览
2017/02/14 Javascript
浅谈node模块与npm包管理工具
2018/01/03 Javascript
JavaScript解析JSON数据示例
2019/07/16 Javascript
微信小程序学习总结(一)项目创建与目录结构分析
2020/06/04 Javascript
JS异步宏队列微队列原理详解
2020/09/09 Javascript
python实现定时同步本机与北京时间的方法
2015/03/24 Python
Python2.7+pytesser实现简单验证码的识别方法
2017/12/29 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
2018/12/11 Python
详解python websocket获取实时数据的几种常见链接方式
2019/07/01 Python
python实现人机猜拳小游戏
2020/02/03 Python
pycharm全局搜索的具体步骤
2020/07/28 Python
Python连接mysql方法及常用参数
2020/09/01 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
2020/10/15 Python
selenium+python实现基本自动化测试的示例代码
2021/01/27 Python
python 使用OpenCV进行简单的人像分割与合成
2021/02/02 Python
IE浏览器单独写CSS样式的几种方法
2014/10/14 HTML / CSS
Under Armour安德玛英国官网:美国高端运动科技品牌
2018/09/17 全球购物
意大利一家专营包包和配饰的网上商店:Borse Last Minute
2019/08/26 全球购物
护理专业个人求职简历的自我评价
2013/10/13 职场文书
通信工程专业毕业生推荐信
2013/12/25 职场文书
食品科学与工程专业毕业生求职信范文
2014/07/21 职场文书
2014党员民主评议个人思想剖析发言
2014/09/19 职场文书
酒店工程部经理岗位职责
2015/04/09 职场文书
2015年基建工作总结范文
2015/05/23 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书