JavaScript验证整个表单

yanglilibaobao 2007-01-11 09:49:28
不像域级有效性检查(field-level validation),表单级有效性检查(form-level validation)将整个表单上的某组(或全部)值作为一个整体分析其一致性。表单级有效性检查一般发生在将一个已完成的HTML 表单提交给CGI 程序之前。我们这样做是为了确保用户在将数据发送至服务器之前,已经填写了所有的必填域。


验证整个表单其实相当简单。在我们的例子当中,我们已经去除了大部份会自动弹出即时警告信息的域级有效性检查。下面是一个例子:


function isANumber(number) {

answer = 1;

if (!parseFloat(number)) {

//the first digit wasn't numeric

answer = 0;

} else {

//the first digit was numeric, so check the rest

for (vari=0; i if ((number.charAt(i) != "0")

&& (!parseFloat(number.charAt(i)))) {

answer = 0;

break;

}

}

}

if (answer == 1) {

orderPlaced = true;

}

return answer;

}


上面的代码,基本上是我们前面的数字检查函数,只不过没有JavaScript 警告信息。在这个情况中,如果用户输入了数字以外的字符,我们不会自动发送错误信息。


一旦用户认为她已经完成了整个表单,那么她就可以按下 Submit(提交)按钮。在那个时候,我们就检查每个域是否有遗漏,或是存有格式不正确的数据。


function validateForm() {

varfixThis = "";

if

(!(isANumber(document.orderForm.numberOrdered.value))) {

fixThis += "Please enter a numeric value

for the number of brains field.\n";

}

if

(!(exists(document.orderForm.typeField.value))) {

fixThis += "Please enter the type.\n";

}

if

(!(exists(document.orderForm.stateField.value))) {

fixThis += "Please enter the state.\n";

}

if

(!(isAPhoneNumber(document.orderForm.phoneNumber.value))) {

fixThis += "Please enter the phone number

in the following format: (123)456-7890";

}

if

(fixThis != "") {

alert(fixThis);

} else {

document.location.href = "thanks.html";

}

}


这个函数检查表单中所有的域,以确保每个域都包含有效的值。倘若它发现某个域缺少有效的数据,它就会在fixThis变量添加一个新的警告信息,然后再继续下去。在最后,它要么弹出一个含有各种警告信息的窗口,就是传送一个简短的“Thank You”给用户。


注意:这个例子检查了表单中我们没有提到的一部分——State 框,它根据用户输入的美国各州的编码计算销售所得税。



http://java.ccidnet.com/art/3539/20061219/980571_1.html
...全文
200 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ice_berg16 2007-01-11
  • 打赏
  • 举报
回复
广告??
JavaScript核心技术 简介: 《JavaScript核心技术》对于各种浏览器、浏览器版本、JavaScript版本、DOM版本的介绍,有助于我们理解所遇到的各种新旧代码,使我们能够对这些代码做出正确的取舍。《JavaScript核心技术》还提供了一些使用JavaScript的最佳实践。无论是新手还是老手,这些如何正确使用JavaScript的经验都能帮助他们养成良好的编程习惯。《JavaScript核心技术》还介绍了一些调试和开发JavaScript的工具,这些工具无疑能够提高我们的开发效率。 《JavaScript核心技术》最后对于Ajax和几个流行的JavaScript库的介绍,无疑会开阔我们在JavaScript使用上的思路。 《JavaScript核心技术》是一本真正意义上的“新书”,不仅介绍了最新的JavaScript知识和方向,还完全覆盖了当今Web开发中关于JavaScript的所有重要话题,它使用了大量实例代码,图文并茂地讲解了使用JavaScript的各个层次和领域的内容。它不是一本参考手册,但却是一本值得拥有的教程。 JavaScript核心技术 目录: 前言 第1章JavaScript初探 1.1规范和实现相互交织的历史 1.2跨浏览器的不兼容性和其他常见的JavaScript传说 1.3你能用JavaScript来做什么 1.4JavaScript初探:“HelloWorld!” 1.5JavaScript沙箱 1.6可访问性和JavaScript的最佳实践 第2章JavaScript数据类型与变量 2.1变量的标识 2.2作用域 2.3简单类型 2.4常量:有名称但不改变 2.5习题 第3章运算符和语句 3.1JavaScript语句的格式 3.2简单语句 3.3条件语句和程序流 3.4条件运算符 3.5逻辑运算符 3.6高级语句:循环语句 3.7习题 第4章JavaScript对象 4.1对象构造函数 4.2Number对象 4.3String对象 4.4正则表达式与RegExp 4.5有专门用途的对象:Date和Math 4.6JavaScript数组 4.7关联数组:不是数组的数组 4.8习题 第5章函数 5.1定义函数:细数所有方式 5.2回调函数 5.3函数和递归 5.4嵌套函数、函数闭包和内存泄漏 5.5作为对象的函数 5.6习题 第6章捕捉事件 6.1O级DOM上的事件句柄 6.22级DOM上的事件句柄 6.3产生事件 6.4习题 第7章表单与即时验证 7.1访问表单 7.2把事件附加在表单上:不同的方法 7.3选择列表 7.4单选按钮和复选框 7.5输入字段和JiT正则表达式 7.6习题 第8章沙箱及之上的cookie、连通性和隐私 第9章基础浏览器对象 第10章DOM:文档对象模型 第11章创建定制的JavaScript对象 第12章构建动态网页:在脚本中加入样式 第13章使用Ajax 第14章好消息:生动的程序库!令人惊异的Web服务!有趣的API! 附录习题答案
你将从《深入浅出javascript(中文版)》学到什么?这么说你准备从写html和css的静态网页跃进到编写动态网络应用程序脚本了?这里就是起点。《深入浅出java script》带你游历令人兴奋的交互式网页创建过程。为了启发你的思考,《深入浅出javascript(中文版)》覆盖了所有的java script基本知识,从基本网络编程技巧,如变量、函数和循环语句,到高级一些的专题,如表单验证、dom操作、客户端对象、脚本程序调试——甚至是aiax!赶快做好准备……快速响应的网站离你只有几页纸那么远。   为何《深入浅出javascript(中文版)》看上去如此不同?   我们认为你的时间如此宝贵以至于不应该花费在为新概念伤脑筋上面。《深入浅出java script》用最新的认知科学和学习理论打造多感官的学习体验,它运用丰富的视觉样式激发你的大脑工作,而不是密密麻麻的文字让你看了昏昏欲睡。 序 1 交互式网络:感觉虚拟世界 2 存储数据:每项事物都有自己的位置 3 探索客户端:浏览器探索 4 决策:前有叉路,面对抉择 5 循环:自我重复的风险 6 函数:简化、重复利用、回收再利用 7 表单验证:让用户全盘托出 8 驾驭网页:利用dom分割html 9 为数据带来生命:科学对象怪人 10 创建自定义对象:自定义对象让你为所欲为 11 除错务尽:好脚本也会出错 12 动态数据:贴心易感的网络应用程序

87,909

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧