网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > 表单美化 > 正文

asp+js处理复杂表单的生成与验证

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
操作Definitions表;RSList对象,主要用于从Lists表读取数据。示例程序提供两种数据库连接方法:使用ODBC DSN或不使用ODBC DSN(使用DSN时需要先创建名为Dynamic的DSN,使用DSN连接数据库的代码已经被注释掉)。

  第三个任务是在生成(或处理)表单脚本的前面(和后面)输出一些静态的HTML代码,比如< HEAD >< /HEAD >,以及在脚本运行结束的时候释放RS、RSList等对象占用的资源。

  除了完成上述任务的代码外,示例应用中其余ASP脚本可能生成的页面有两种类型:提问表单(见上图)以及表单提交后出现的结果页面(后者同时还负责用户提交结果的记录)。要确定究竟运行哪一部分脚本,最简单的方法就是检查是否已经提交表单:如是,则处理表单;否则生成表单。

  是生成表单还是处理表单?

以下是引用片段:
  If Len(Request.Form) = 0 Then
  生成表单
  ...略...
  Else
  处理表单
  ...略...
  End If

  三、动态生成表单

  生成表单时,程序按照Definitons表中的各个输入域定义记录,依次生成相应的表单HTML代码和JavaScript代码。HTML代码中首先要生成的是文本标签:

以下是引用片段:
  sHTML = sHTML & vbTab & "< TR >" & vbCrLf & vbTab & vbTab
  sHTML = sHTML & "< TD VALIGN=" & Chr(34) & "TOP" & Chr(34)
  sHTML = sHTML & " >" & vbCrLf & vbTab & vbTab & vbTab
  sHTML = sHTML & "< B >" & RS.Fields("Label")


  然后程序检查当前输入域是否必须输入。如果必须,则在标签文本之后加一个星号(表示该值必须输入),同时对于必须输入的值,还要生成相应的JavaScript代码来验证它。对于单选按钮或选择列表,需进一步检查用户确实选择了某个选项;对于所有其他输入类型,只要检查输入值不为空即可。

  紧接文本标签的是表单的输入元素,这些元素的HTML代码根据Definitions表中指定的类型和属性生成。再接下来就是根据输入值要求生成执行客户端验证任务的JavaScript代码。对于本例,只有数字型的值需要进一步检查以保证用户的输入确实是数字,而且数字值在许可的最大值和最小值之间。生成上述代码之后,就可以结束一个表格行(也就是一个输入域)继续处理Definitions表的下一个记录。一旦所有的数据库记录处理完毕,下一步就可以加入“提交”按钮和“清除”按钮的HTML代码。如果换个角度来看,程序在这里的任务就是根据数据库记录生成各个输入域,每个输入域占用一个表格行,每个表格行二个单元:第一个单元用来显示文本标签,第二个单元显示输入元素本身(代码见dForm.asp)。

  上述过程结束之后,表单的HTML代码和验证用JavaScript函数分别保存到了变量sHTML和sJavaScript中。在把这些内容写入页面之前,程序检查客户端是否要求执行JavaScript验证,如果不要求执行这类验证,则清除sJavaScript变量:

  If iValType = 0 Or iValType = 2 Then sJavaScript = ""

  在输出BODY标记之后,程序输出如下JavaScript函数:

以下是引用片段:
  < SCRIPT LANGUAGE="JavaScript" > 
  < !-- 
  function validate(TheForm){ 
  //客户端表单验证 
  < %=sJavaScript% > 
  return true; 
  } 
   
  function CheckRadio(objRadio){ 
  //单选按钮中是否有某个值被选中 
  for(var n = 0; n < objRadio.length; n++){ 
  if(objRadio[n].checked){ 
  return true; 
  } 
  } 
  return false; 
  } 
   
  function CheckList(objList){ 
  //是否已经在选择列表中选择了某个值 
  for(var n = 1; n < objList.length; n++){ 
  if(objList.options[n].selected){ 
  return true; 
  } 
  } 
  return false; 
  } 
  //-- > 
  < /Script >


  如果客户端不需要JavaScript验证,则validate函数只剩下一个“return true”语句。上面代码中的后面两个静态JavaScript函数(CheckRadio和CheckList)用于验证单选按钮和下拉列表框,当这两种输入域需要验证时validate函数将调用它们。

  现在可以开始把表单写入页面:

  < FORM ACTION="./dform.asp" METHOD="POST" NAME="MyForm" onSubmit="return validate(this)" >

  在这里,只有当validate函数返回true时才执行表单提交操作。因此当客户端JavaScript验证功能关闭时,validate函数将自动返回true。

  接下来要

  • 上一篇资讯: [表单美化]
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师