繁体中文
设为首页
加入收藏
当前位置:ASP技术首页 >> ASP基础 >> 如何实现动态添加Html文档中Form项(下)

如何实现动态添加Html文档中Form项(下)

2006-05-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:  您在看了这些源代码后,可能会注意到有两个类型都为text的form项元素:一个名字为items、一个名字为newItem。为什么呢?这是因为我们要区别哪些是用户通过点击按钮、并且输入了新值后得到的,哪些是我们为了...

  您在看了这些源代码后,可能会注意到有两个类型都为text的form项元素:一个名字为items、一个名字为newItem。为什么呢?这是因为我们要区别哪些是用户通过点击<添加>按钮、并且输入了新值后得到的,哪些是我们为了让用户能够有地方可以输入新值的类型为text的form项元素。这样我们就能很清楚的在循环时只列出用户已经添加的、有值的类型为text的form项元素了。这就是我们为什么把它们命名成不同的名字的缘故,是不是很妙呢?呵呵 :-)。其实这种方法的关键在于利用了request.form("TextFieldName")的Count属性和request.form("TextFieldName")(I)的方法,才使得我们更容易的获取名为TextFieldName的类型为text的form项元素的数目和分别获取它们的值。这两种方法的用处很大,可以大大的简化我们所要编写的代码。大家一定要记住了这两种用法。下面我再给出一个没有用到这两种用法的ASP程序源代码,大家比较比较,体会一下为什么上面的代码要好。

'/*DynamicAddForm2.ASP文件的源代码开始点*/

<%@ Language=VBScript %>

<%

'----------------------------------------------------

'Author : WaiWai(歪歪)

'Created Date : 2000/1/13

'File Name : DynamicAddForm.ASP

'Description : Dynamic Add Form's Text Fields.

'All Rights Reserved.所有权归City Club

'----------------------------------------------------

%>

Add new mail server site. All Rights Reserved.

<%

if trim(Request.form("num"))="" then

'/*此时表示用户首次打开此ASP页,所以所得的num为空,并显示出相应的输入界面供用户输入信息

'其中的num值是为来记录类型为text的form元素的数目,与第一个代码文件中的 'request.form("items").Count效果一样.*/

'/*First time open this page.*/

Response.Write "

"

Response.Write ""

Response.Write "

"

Response.Write "

" & vbcrlf

Response.Write "

"

Response.Write "

"

else

'/*Add new*/

'Response.Write "

"

'/*Loop Start*/

Response.Write "

追加新邮件服务器信息

条数 邮件服务器URL 用户名参数变量 密码参数变量 站点名称

[ * * * Example: * * * ]

0. 990.net/

prog/login?

user

pass

990.net

1. "

Response.Write "

" & trim(Request.Form("num")) & ". "

for I = 1 to cint(trim(Request.Form("num")))+1

%>

<%=I%>.

<%if I<10 then

'/*此处的目的是为了保证前10个元素与后89个元素缩进相同的宽度*/%>

<%elseif I<100 and I>9 then%>

<%end if%>

<%if I<>cint(trim(Request.Form("num")))+1 then

url="url" & I '/*生成如url1,url2......的字符串*/

user_var = "user_var" & I

pw_var = "pw_var" & I

sitename = "sitename" & I

if trim(request.form(url))<>"" and trim(Request.Form(user_var))<>"" and_ trim(Request.Form(pw_var))<>"" and trim(Request.Form(sitename))<>"" then %>

value=<%=trim(request.form(url))%>>

value=<%=trim(Request.Form(user_var))%>>

value=<%=trim(Request.Form(pw_var))%>>

value=<%=trim(Request.Form(sitename))%>>


<% else

%>

<% exit for

end if

else%>

>

>

>

>


<%end if

next

'/*Loop End*/

end if

%>

onclick="{document['form1'].action='DynamicAddForm.ASP';

document.form1.submit();}">

onclick="document['form1'].action='SaveNew.ASP';

document.form1.submit();">

onClick="window.location='PostofficeConsole.ASP'">

<%if trim(Request.Form("num"))<>"" then

'/*当开始给第一个类型为text的form元素添加了值的时候开始记录text类型元素的数目*/%>

>

<%end if%>

'/*DynamicAddForm2.ASP文件的源代码结束点*/

  现在大家都看到了这两种方法各自实现的程序源代码了。您有什么想法呢?呵呵,是不是觉得第一个程序代码要比第二个程序代码简洁的多呢。我们在第一个程序代码中是在得到同名类型为text的form元素的值时用到了request.form("TextFieldName")的Count属性来统计到目前为止一共有多少个这样的form元素。而在第二个程序代码中,我们是通过

中类型为hidden的元素来保存和得到这个数的。还有一点值得再提一次,那就是把这些类型为text的form元素的名字都命名成同一名字。这就可以避免在第二个程序代码中诸如“url="url" & I”的部分了。当然了,这个做法在是知道request.form("TextFieldName")有Count这个属性的前提下才会想到的了。所以第一个程序代码的优点在于它充分利用了在获取同名同类型的form元素的值时的Count属性和值的取法。呵呵,解决问题的好思路与方法是基于对所用工具有着充分了解的基础之上的。。所有这些的关键是我们要不断的去做,这样我们才能更好的领悟和了解,学习到、有着更好更妙的方法。

责任编辑:admin
相关文章