ASP+JAVAScript:复杂表单的动态生成与验证

时间:2007-10-06 21:51:00 

这里所谓的复杂表单,是指表单中包含多种不同的输入类型,比如下拉列表框、单行文本、多行文本、数值等。在经常需要更换这类表单的场合,需要有一个表单的动态生成程序。本文介绍的正是这样一个系统,它以数据库保存表单定义数据,利用ASP脚本动态生成表单HTML代码以及验证表单输入的脚本。
  一、定义数据库表结构
  在Web上经常可以看到“每周调查”之类的表单,这就是一种需要经常更新的表单。如果有一个动态生成表单及其验证脚本的程序,可以大大减少制作这些表单的工作量。
  在本文的动态表单生成与验证示例中,我们使用一个Access数据库来存储有关表单的定义信息,同时为简单计,用户在表单中输入的数据也保存到同一数据库。定义表单需要两个表:第一个表(Definitons)用于表单输入域的定义,第二个表(Lists)保存各个输入域的附加信息,比如选择列表的选择项。
  表Definitons包含如下字段:
FieldName —— 赋予表单输入域的变量名字
Label —— 即文本标签,显示在输入域前面的提示性文字
Type —— 单个字符,该字符表示表单输入域的形式和输入值的类型
  具体如下:
  (t) 文本输入框,即< INPUT TYPE="TEXT" >。
  (n) 文本输入框,但要求输入数字值。
  (m) 备注型内容,用于注释或其他大量文本的输入,它是一个多行文本编辑框。
  (b) 要求输入“是”或“否”。本实现中将用复选框来获取这种输入,复选框的文本标签为“是”。如果用户选中它,则返回值是“on”。
  (r) 单选按钮。
  (l) 下拉列表框。
  Min —— 仅对数字型输入值有效,在这里给出最小值。在本例中有一个“Age”(年龄)数字型输入框,它的最小值设定为1。
  Max —— 该字段的值与输入域形式有关。对于数字型输入框,它表示的是允许的最大值。例如“Age”的Max值为100。对于文本输入框,Max表示允许的最多字符个数。对于多行文本编辑框,Max表示可见区域的文本行数。
  Required —— 表示是否必须输入。这种类型的值如果没有输入,则输入验证程序将报告错误。在表单中,必须输入的值以星号标记,并以脚注的形式提示用户该类值必须输入。
  本文的示例表单是一个ASP程序员调查表,在Definitons表中该表单的定义主要如下:
  FieldName Label Type Min Max Required
  Name 姓名 文本(t) - 50 否
  Age 年龄 数字(n) 1 100 否
  Sex 性别 单选按钮(r) - - 是
  E-mail 邮件地址 文本(t) - - 是
  Language 编程语言 下拉列表框(l) - - 否
  表Lists用于保存输入域定义的一些附加信息,本例有“Sex”和“Languages”两个输入值要用到它。表Lists非常简单,只包含如下三个字段:
  FieldName —— 当前记录属于哪个表单输入域
  Value —— 选择项的值
  Label —— 用户所看到的选择项的提示文本
  输入域“Sex”只能从两个值选取:“男”或“女”。“Language”列出了几种可应用于ASP环境的编程语言,包括:VBScript,JavaScript,C,Perl和“其他”。
  第三个表“Records”保存用户提交的内容,它也包含三个字段,每个记录对应用户的一次提交:
  Record —— 备注类型,以查询字符串形式保存的用户输入。
  Created —— 用户提交该表单的日期和时间。 RemoteIP —— 表单提交者的IP地址。
  在实际应用中可能要收集更多有关用户的信息,为简单计,本例只记录提交时间和用户IP地址这两个附加信息。

标签:表单,验证,动态
0
投稿

猜你喜欢

  • 解决MySQL 5数据库连接超时问题

    2009-03-25 15:24:00
  • 关注各网站的布局调整

    2008-09-23 18:14:00
  • Script块放在另一个Script 块内方法

    2009-02-04 15:43:00
  • ASp使用AspJpeg组件制作透明文字水印

    2008-01-15 20:25:00
  • Persits AspJpeg组件图片水印\\缩略图\\图片合并\\图片切割\\实例教程

    2008-12-14 10:36:00
  • SQL Server 2005中数据库镜像的四个问题

    2009-02-19 16:48:00
  • 用asp获取微软安全更新列表的代码 小偷程序

    2011-02-24 11:19:00
  • 如何提升JavaScript的运行速度(DOM篇)[译]

    2009-02-25 12:24:00
  • 基于RSA算法在asp中加密与解密对应的函数

    2007-11-07 21:39:00
  • IE的button元素bug

    2009-12-08 12:39:00
  • 用于WebKit的CSS诀窍[译]

    2009-03-11 20:03:00
  • 多种还原.bak数据库文件方式

    2008-02-25 13:51:00
  • ASP网站程序自动升级实现的方法

    2008-10-15 14:28:00
  • asp中获取当前月份距离以前某个时间的月份数

    2012-11-30 20:29:40
  • 轻松掌握 MySQL的数字类型以及建库策略

    2008-11-27 16:09:00
  • jQuerify书签

    2008-06-16 12:16:00
  • 关于浏览器的一些观点

    2008-08-06 12:48:00
  • 论Asp与XML的关系

    2008-03-05 12:01:00
  • asp如何对多个条件进行判断?

    2009-11-20 18:28:00
  • Javascript 每日测试 - 第五期 callee及function

    2008-07-10 13:22:00
  • asp之家 网络编程 m.aspxhome.com