详解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 相关文章推荐
根据地区不同显示时间的javascript代码
Aug 13 Javascript
jQuery maxlength文本字数限制插件
Apr 16 Javascript
JS分割字符串并放入数组的函数
Jul 04 Javascript
jquery对单选框,多选框,文本框等常见操作小结
Jan 08 Javascript
JavaScript制作淘宝星级评分效果的思路
Jun 23 Javascript
animate 实现滑动切换效果【实例代码】
May 05 Javascript
JS获取当前地理位置的方法
Oct 25 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
Jun 14 Javascript
react中实现搜索结果中关键词高亮显示
Jul 31 Javascript
layui form表单提交后实现自动刷新
Oct 25 Javascript
基于node+vue实现简单的WebSocket聊天功能
Feb 01 Javascript
jQuery实现简单聊天室
Feb 08 jQuery
详解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
单点登录 Ucenter示例分析
2013/10/29 PHP
浅析Yii2 gridview实现批量删除教程
2016/04/22 PHP
PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
2016/09/26 PHP
thinkphp jquery实现图片上传和预览效果
2020/07/22 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
Yii2框架实现登陆添加验证码功能示例
2018/07/12 PHP
PHP实现用session来实现记录用户登陆信息
2018/10/15 PHP
实例解析php的数据类型
2018/10/24 PHP
PHP bin2hex()函数基础实例讲解
2019/02/11 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
jquery ajax请求实例深入解析
2012/11/26 Javascript
JQuery-tableDnD 拖拽的基本使用介绍
2013/07/04 Javascript
常用的几段javascript代码分享
2014/03/25 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
2014/06/06 Javascript
js中的hasOwnProperty和isPrototypeOf方法使用实例
2014/06/06 Javascript
JS生成某个范围的随机数【四种情况详解】
2016/04/20 Javascript
在Docker快速部署Node.js应用的详细步骤
2016/09/02 Javascript
vue组件watch属性实例讲解
2017/11/07 Javascript
jQuery实现的隔行变色功能【案例】
2019/02/18 jQuery
JS桶排序的简单理解与实现方法示例
2019/11/25 Javascript
vue 实现element-ui中的加载中状态
2020/11/11 Javascript
[01:14:30]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第二场 8.20.mp4
2019/08/22 DOTA
一个超级简单的python web程序
2014/09/11 Python
Python并发编程协程(Coroutine)之Gevent详解
2017/12/27 Python
Python工厂函数用法实例分析
2018/05/14 Python
Django时区详解
2019/07/24 Python
tensorflow入门:TFRecordDataset变长数据的batch读取详解
2020/01/20 Python
Pandas将列表(List)转换为数据框(Dataframe)
2020/04/24 Python
Html5获取高德地图定位天气的方法
2019/12/26 HTML / CSS
英国网上电器商店:Electricshop
2020/03/15 全球购物
生物制药专业求职信
2014/03/11 职场文书
职务说明书范文
2014/05/07 职场文书
大专生自我鉴定怎么写
2014/09/16 职场文书
初中优秀学生评语
2014/12/29 职场文书
文艺节目主持词
2015/07/06 职场文书
面试必问:圣杯布局和双飞翼布局的区别
2021/05/13 HTML / CSS