详解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 相关文章推荐
Prototype Selector对象学习
Jul 23 Javascript
在UpdatePanel内jquery easyui效果失效的解决方法
Apr 11 Javascript
网页防止tab键的使用快速解决方法
Nov 07 Javascript
NODE.JS加密模块CRYPTO常用方法介绍
Jun 05 Javascript
JavaScript中用getDate()方法返回指定日期的教程
Jun 09 Javascript
跟我学习javascript的作用域与作用域链
Nov 19 Javascript
javascript获取系统当前时间的方法
Nov 19 Javascript
json定义及jquery操作json的方法
Sep 29 Javascript
javascript中异常处理案例(推荐)
Oct 03 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
Mar 17 Javascript
小程序组件之仿微信通讯录的实现代码
Sep 12 Javascript
Vue动态面包屑功能的实现方法
Jul 01 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中的strtr函数使用介绍(str_replace)
2011/10/20 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
PHP封装的mysqli数据库操作类示例
2019/02/16 PHP
asp函数split()对应php函数explode()
2019/02/27 PHP
php apache开启跨域模式过程详解
2019/07/08 PHP
JavaScript 设计模式之组合模式解析
2010/04/09 Javascript
javascript中的prototype属性实例分析说明
2010/08/09 Javascript
js 遍历对象的属性的代码
2011/12/29 Javascript
XMLHttpRequest处理xml格式的返回数据(示例代码)
2013/11/21 Javascript
查找页面中所有类为test的结点的方法
2014/03/28 Javascript
JavaScript中模拟实现jsonp
2015/06/19 Javascript
javascript常用函数(2)
2015/11/05 Javascript
基于JS+Canves实现点击按钮水波纹效果
2016/09/15 Javascript
Nodejs进阶:核心模块net入门学习与实例讲解
2016/11/21 NodeJs
深入理解jquery中的each用法
2016/12/14 Javascript
浅谈jQuery中的$.extend方法来扩展JSON对象
2017/02/12 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
2017/06/30 Javascript
JS设计模式之单例模式(一)
2017/09/29 Javascript
开发用到的js封装方法(20种)
2018/10/12 Javascript
在vue项目中引入highcharts图表的方法
2019/01/21 Javascript
JS中async/await实现异步调用的方法
2019/08/28 Javascript
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
vue实现图片按比例缩放问题操作
2020/08/11 Javascript
[48:45]Ti4 循环赛第二日 NEWBEE vs EG
2014/07/11 DOTA
selenium+python 去除启动的黑色cmd窗口方法
2018/05/22 Python
python中dir()与__dict__属性的区别浅析
2018/12/10 Python
pandas DataFrame 行列索引及值的获取的方法
2019/07/02 Python
Django中密码的加密、验密、解密操作
2019/12/19 Python
python 下载文件的几种方法汇总
2021/01/06 Python
美国女士泳装店:Swimsuits For All
2017/03/02 全球购物
Skip Hop官网:好莱坞宝宝挚爱品牌
2018/06/17 全球购物
服装销售人员求职自我评价
2013/09/26 职场文书
2015年度电厂个人工作总结
2015/05/13 职场文书
2016公司年会主持词
2015/07/01 职场文书
python编程学习使用管道Pipe编写优化代码
2021/11/20 Python
MySQL中EXPLAIN语句及用法
2022/05/20 MySQL