详解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 相关文章推荐
ppk谈JavaScript style属性
Oct 10 Javascript
javascript实现textarea中tab键的缩排处理方法
Jun 26 Javascript
jQuery实现自动切换播放的经典滑动门效果
Sep 12 Javascript
JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
Dec 04 Javascript
点评js异步加载的4种方式
Dec 22 Javascript
javascript 数组的正态分布排序的问题
Jul 31 Javascript
bootstrap实现图片自动轮播
Dec 21 Javascript
vue在手机中通过本机IP地址访问webApp的方法
Aug 15 Javascript
JS使用正则表达式提交页面验证的代码
Oct 16 Javascript
js判断浏览器的环境(pc端,移动端,还是微信浏览器)
Dec 24 Javascript
JavaScript或jQuery 获取option value值方法解析
May 12 jQuery
vue中实现拖动调整左右两侧div的宽度的示例代码
Jul 22 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 破解防盗链图片函数
2008/12/09 PHP
php数组去重的函数代码
2013/02/03 PHP
PHP Session机制简介及用法
2014/08/19 PHP
php使用wordwrap格式化文本段落的方法
2015/03/17 PHP
PHP实现的QQ空间g_tk加密算法
2015/07/09 PHP
JavaScript.The.Good.Parts阅读笔记(二)作用域&amp;闭包&amp;减缓全局空间污染
2010/11/16 Javascript
JS JQUERY实现滚动条自动滚到底的方法
2015/01/09 Javascript
JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
2015/11/24 Javascript
jQuery继承extend用法详解
2016/10/10 Javascript
微信小程序 两种为对象属性赋值的方式详解
2017/02/23 Javascript
vue实现表格数据的增删改查
2017/07/10 Javascript
基于JavaScript实现无缝滚动效果
2017/07/21 Javascript
vue中使用cropperjs的方法
2018/03/01 Javascript
ES6中Set和Map数据结构,Map与其它数据结构互相转换操作实例详解
2019/02/28 Javascript
微信小程序 授权登录详解(附完整源码)
2019/08/23 Javascript
jQuery操作元素的内容和样式完整实例分析
2020/01/10 jQuery
koa2的中间件功能及应用示例
2020/03/05 Javascript
Python实现扫描局域网活动ip(扫描在线电脑)
2015/04/28 Python
使用pandas批量处理矢量化字符串的实例讲解
2018/07/10 Python
解决pycharm 误删掉项目文件的处理方法
2018/10/22 Python
Python实现对字典分别按键(key)和值(value)进行排序的方法分析
2018/12/19 Python
Python中最大递归深度值的探讨
2019/03/05 Python
Python3.5以上版本lxml导入etree报错的解决方案
2019/06/26 Python
Python单元测试与测试用例简析
2019/11/09 Python
Python模块 _winreg操作注册表
2020/02/05 Python
python 如何将office文件转换为PDF
2020/09/22 Python
Python爬取微信小程序通用方法代码实例详解
2020/09/29 Python
纯CSS3实现Material Design效果
2017/03/09 HTML / CSS
解析HTML5的存储功能和web SQL的相关操作方法
2016/02/19 HTML / CSS
多视角3D逼真HTML5水波动画
2016/03/03 HTML / CSS
美国高端寝具品牌:Coyuchi
2017/02/08 全球购物
大学生如何写自荐信
2014/01/08 职场文书
大学毕业自我鉴定范文
2014/02/03 职场文书
市场营销管理毕业生自荐信
2014/03/03 职场文书
计生专干事迹
2014/05/28 职场文书
晚会闭幕词
2015/01/28 职场文书