设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 我们致力于打造专业的站长资讯、交流、合作平台!
热搜: 手机 创业者 活动
当前位置: 首页 > 创业 > 经验 > 正文

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

发布时间:2018-08-18 15:15 所属栏目:[经验] 来源:站长网
导读:大家好,今天和大家谈谈如何用ASP来实现动态的添加Html文档中Form项的问题。如果你对Html比较熟悉的话肯定知道有个form/form的HTML标记。在form与/form之间有诸如类型(type)为Text、Password、Button、Submit、Reset等的标记(元素)。我们这里所说的动态的添
大家好,今天和大家谈谈如何用ASP来实现动态的添加Html文档中Form项的问题。如果你对Html比较熟悉的话肯定知道有个<form></form>的HTML标记。在<form>与</form>之间有诸如类型(type)为Text、Password、Button、Submit、Reset等的标记(元素)。我们这里所说的动态的添加Form项就是指动态的添加<Form></Form>中的Text元素。那么如何去实现动态的添加Form项呢?   我们先分析分析实现动态添加form项的思路。  如果是让您自己或用诸如FrontPage、DreamWeaver静态编写Html文档来增加一个又一个类型为text的form元素的话。您肯定是写完第一个类型为text的form元素后,再会加入第二个类型为text的form元素,就这样一直加到满足数目条件为止。我们先不说在加一个新的类型为text的元素时,应该将已经存在且有内容、类型也为text的其他form元素也显示出来。上面所说的通过静态编写Html文档来增加类型为text的form元素的方法,其实就是我们在ASP程序文件中实现动态添加类型为text的form元素的基本思路。如何去得到已经存在且有内容、类型也为text的其他form元素的内容呢?在ASP程序中通过request.form("TextFieldName")可以得到。其中的"TextFieldName"是指<form></form>中名字为"TextFieldName"的项。就是指<form><input type=text name="TextFieldName"></form>中的"TextFieldName"。  现在我们知道如何得到了表单的内容了,那么我们就可以通过这种方法来得到已经存在且有内容、类型为text的form元素的值了。再在显示这些已经有值的text项时,我们就可以把所得到的值赋给相应的项。接下来,我们又会想如何去知道一共有多少个有内容、类型为text的form项呢?我们可以通过以下这种方法来得到。那就是通过request.form("TextFieldName")的Count属性来得到。这是因为在得到表单中多个类型为Text并且同名的form元素时,我们能得到的是一组值,也就说它们的值是放在一个名为TextFieldName的集合之中。而此时的count属性就是统计这个集合中同类元素的数目的,这样我们就可以知道一共有多少个这样的类型为text的form元素了,并且可以用循环语句与count属性取出集合各自的值。您可能会问:那么我们又如何才能得到这个集合中每一个名为TextFieldName类型为text的form的元素的值呢?在此之前我们先定义一个变量I,它的初始值为1,其实这个变量I就是我们在做循环时的变量。接下来我们就可以通过request.form("TextFieldName")(I)的方法来获取每一个名为TextFieldName的类型为text的form元素的值了。还有一点要注意,就是我们在将已经有值、类型也为text的form元素的值取出赋给相应项并显示出来的时候,我们还应该再增加一个新的类型为text的form项。为什么呢?这是为了让我们还可以再接着继续添加新的值。不然的话,在取出所有已经有值的类型为text的form元素后,您就没有继续添加新值的地方了,那也就成不了动态添加Html文档中Form项了。所以呢,您一定不能忘记这很重要的一点。现在我们知道如何取得这些满足条件的类型为text的form的元素数目了,也知道如何分别获取它们各自的值了。那么我又如何去控制只仅仅将已经有值、类型为text的form的元素呢?以及我们倒底如何去实现上面所说的一切呢?那么接下来我会给出它的源代码,并且会在有些地方加上注释或给出解释。



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


  现在大家都看到了这两种方法各自实现的程序源代码了。您有什么想法呢?呵呵,是不是觉得第一个程序代码要比第二个程序代码简洁的多呢。我们在第一个程序代码中是在得到同名类型为text的form元素的值时用到了request.form("TextFieldName")的Count属性来统计到目前为止一共有多少个这样的form元素。而在第二个程序代码中,我们是通过<form></form>中类型为hidden的元素来保存和得到这个数的。还有一点值得再提一次,那就是把这些类型为text的form元素的名字都命名成同一名字。这就可以避免在第二个程序代码中诸如“url="url" & I”的部分了。当然了,这个做法在是知道request.form("TextFieldName")有Count这个属性的前提下才会想到的了。所以第一个程序代码的优点在于它充分利用了在获取同名同类型的form元素的值时的Count属性和值的取法。呵呵,解决问题的好思路与方法是基于对所用工具有着充分了解的基础之上的。。所有这些的关键是我们要不断的去做,这样我们才能更好的领悟和了解,学习到、有着更好更妙的方法。

(编辑:ASP站长网)

    网友评论
    推荐文章