详解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 相关文章推荐
解决 FireFox 下[使用event很麻烦] 的问题.
Aug 22 Javascript
use jscript with List Proxy Server Information
Jun 11 Javascript
经典海量jQuery插件 大家可以收藏一下
Feb 07 Javascript
jquery 问答知识整理
Feb 11 Javascript
通过jQuery源码学习javascript(三)
Dec 27 Javascript
分享一个常用的javascript静态类
Dec 31 Javascript
javascript实现随时变化着的背景颜色
Apr 02 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
Dec 22 Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
Nov 26 Javascript
Bootstrap 中data-[*] 属性的整理
Mar 13 Javascript
JS数组Object.keys()方法的使用示例
Jun 05 Javascript
原生JS实现pc端轮播图效果
Dec 21 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
2019年漫画销量排行榜:鬼灭登顶 海贼单卷制霸 尾田盛赞鬼灭
2020/03/08 日漫
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
2011/11/10 PHP
fetchAll()与mysql_fetch_array()的区别详解
2013/06/05 PHP
php无序树实现方法
2015/07/28 PHP
PHP中spl_autoload_register()函数用法实例详解
2016/07/18 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
微信企业转账之入口类分装php代码
2018/10/01 PHP
PHP date_default_timezone_set()设置时区操作实例分析
2020/05/16 PHP
建立良好体验度的Web注册系统ajax
2007/07/09 Javascript
Yii-自定义删除确认弹框(zyd)jquery实现代码
2013/03/04 Javascript
实例讲解JS中数组Array的操作方法
2014/05/09 Javascript
JQuery做的一个简单的点灯游戏分享
2014/07/16 Javascript
使表格的标题列可左右拉伸jquery插件封装
2014/11/24 Javascript
javascript判断数组内是否重复的方法
2015/04/21 Javascript
JS+CSS实现表格高亮的方法
2015/08/05 Javascript
js操作数组函数实例小结
2015/12/10 Javascript
javascript实现延时显示提示框特效代码
2016/04/27 Javascript
深入理解 JS 垃圾回收
2019/06/03 Javascript
vue中组件通信的八种方式(值得收藏!)
2019/08/09 Javascript
node实现mock-plugin中间件的方法
2019/12/25 Javascript
Antd下拉选择,自动匹配功能的实现
2020/10/24 Javascript
从零学Python之hello world
2014/05/21 Python
python虚拟环境virualenv的安装与使用
2016/12/18 Python
关于python列表增加元素的三种操作方法
2018/08/22 Python
Python中实现单例模式的n种方式和原理
2018/11/14 Python
python plotly画柱状图代码实例
2019/12/13 Python
解决Pytorch训练过程中loss不下降的问题
2020/01/02 Python
如何理解python面向对象编程
2020/06/01 Python
selenium自动化测试入门实战
2020/12/21 Python
详解CSS3 Media Queries中媒体属性的使用
2016/02/29 HTML / CSS
2014年开学第一课活动方案
2014/03/06 职场文书
2015年宣传部部长竞选演讲稿
2014/11/28 职场文书
南阳市白酒市场的调查报告
2019/11/08 职场文书
使用javascript解析二维码的三种方式
2021/11/11 Javascript
Java 关于String字符串原理上的问题
2022/04/07 Java/Android
处理canvas绘制图片模糊问题
2022/05/11 Javascript