详解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 相关文章推荐
jquery uaMatch源代码
Feb 14 Javascript
用javascript作一个通用向导说明
Aug 30 Javascript
jQuery学习笔记 操作jQuery对象 属性处理
Sep 19 Javascript
基于jQuery实现美观且实用的倒计时实例代码
Dec 30 Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
Feb 25 Javascript
JS 调试中常见的报错问题解决方法
May 20 Javascript
JavaScript 程序错误Cannot use 'in' operator to search的解决方法
Jul 10 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
Sep 28 Javascript
jquery animate动画持续运动的实例
Nov 29 jQuery
关于echarts在节点显示动态数据及添加提示文本所遇到的问题
Apr 20 Javascript
JS计算两个数组的交集、差集、并集、补集(多种实现方式)
May 21 Javascript
解决vue中使用less/sass及使用中遇到无效的问题
Oct 24 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笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
Js之软键盘实现(js源码)
2007/01/30 Javascript
ASP 过滤数组重复数据函数(加强版)
2010/05/31 Javascript
js replace正则表达式应用案例讲解
2013/01/17 Javascript
Google (Local) Search API的简单使用介绍
2013/11/28 Javascript
JS文本获得焦点清除文本文字的示例代码
2014/01/13 Javascript
js实现在同一窗口浏览图片
2014/09/17 Javascript
jQuery Ajax中的事件详细介绍
2015/04/16 Javascript
jquery实现叠层3D文字特效代码分享
2015/08/21 Javascript
javascript手风琴下拉菜单实现代码
2015/11/12 Javascript
JavaScript iframe数据共享接口实现方法
2016/01/06 Javascript
jQuery实现可以控制图片旋转角度效果(附demo源码下载)
2016/01/27 Javascript
Javascript中apply、call、bind的巧妙使用
2016/08/18 Javascript
js生成随机颜色方法代码分享(三种)
2016/12/29 Javascript
JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)
2017/06/19 Javascript
Node.js JSON模块用法实例分析
2019/01/04 Javascript
vue鼠标悬停事件实例详解
2019/04/01 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
Vue通过for循环随机生成不同的颜色或随机数的实例
2019/11/09 Javascript
如何构建一个Vue插件并生成npm包
2020/10/26 Javascript
[48:44]2014 DOTA2国际邀请赛中国区预选赛5.21 TongFu VS HGT
2014/05/22 DOTA
[00:36]DOTA2上海特级锦标赛 Archon战队宣传片
2016/03/04 DOTA
python动态加载变量示例分享
2014/02/17 Python
python selenium 对浏览器标签页进行关闭和切换的方法
2018/05/21 Python
python3解析库lxml的安装与基本使用
2018/06/27 Python
解决pyqt5中QToolButton无法使用的问题
2019/06/21 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
2020/01/24 Python
在 Python 中使用 MQTT的方法
2020/08/18 Python
德国团购网站:Groupon德国
2018/03/13 全球购物
什么是URL
2015/12/13 面试题
JAVA招聘远程笔试题
2015/07/23 面试题
母亲七十大寿答谢词
2014/01/18 职场文书
工作迟到检讨书
2014/02/21 职场文书
安全承诺书范文
2014/03/26 职场文书
vue如何清除浏览器历史栈
2022/05/25 Vue.js