主頁(yè) > 知識(shí)庫(kù) > ASP中JavaScript處理復(fù)雜表單的生成與驗(yàn)證第1/3頁(yè)

ASP中JavaScript處理復(fù)雜表單的生成與驗(yàn)證第1/3頁(yè)

熱門標(biāo)簽:外呼回?fù)芟到y(tǒng)圖片 常用地圖標(biāo)注范圍點(diǎn) 為什么外呼系統(tǒng)需要預(yù)存話費(fèi)呢 寧夏怎么申請(qǐng)400電話 蘭州智能語(yǔ)音電銷機(jī)器人功能 離線電子地圖標(biāo)注軟件注冊(cè) 辦理400電話一年多少錢 咸陽(yáng)銷售外呼系統(tǒng) 企數(shù)外呼系統(tǒng)能用多久
這里所謂的復(fù)雜表單,是指表單中包含多種不同的輸入類型,比如下拉列表框、單行文本、多行文本、數(shù)值等。在經(jīng)常需要更換這類表單的場(chǎng)合,需要有一個(gè)表單的動(dòng)態(tài)生成程序。本文介紹的正是這樣一個(gè)系統(tǒng),它以數(shù)據(jù)庫(kù)保存表單定義數(shù)據(jù),利用ASP腳本動(dòng)態(tài)生成表單HTML代碼以及驗(yàn)證表單輸入的腳本。
  一、定義數(shù)據(jù)庫(kù)表結(jié)構(gòu)
  在Web上經(jīng)??梢钥吹健懊恐苷{(diào)查”之類的表單,這就是一種需要經(jīng)常更新的表單。如果有一個(gè)動(dòng)態(tài)生成表單及其驗(yàn)證腳本的程序,可以大大減少制作這些表單的工作量。
  在本文的動(dòng)態(tài)表單生成與驗(yàn)證示例中,我們使用一個(gè)Access數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)有關(guān)表單的定義信息,同時(shí)為簡(jiǎn)單計(jì),用戶在表單中輸入的數(shù)據(jù)也保存到同一數(shù)據(jù)庫(kù)。定義表單需要兩個(gè)表:第一個(gè)表(Definitons)用于表單輸入域的定義,第二個(gè)表(Lists)保存各個(gè)輸入域的附加信息,比如選擇列表的選擇項(xiàng)。
  表Definitons包含如下字段:
FieldName —— 賦予表單輸入域的變量名字 
Label —— 即文本標(biāo)簽,顯示在輸入域前面的提示性文字 
Type —— 單個(gè)字符,該字符表示表單輸入域的形式和輸入值的類型
  具體如下:
  (t) 文本輸入框,即 INPUT TYPE="TEXT" >。
  (n) 文本輸入框,但要求輸入數(shù)字值。
  (m) 備注型內(nèi)容,用于注釋或其他大量文本的輸入,它是一個(gè)多行文本編輯框。
  (b) 要求輸入“是”或“否”。本實(shí)現(xiàn)中將用復(fù)選框來(lái)獲取這種輸入,復(fù)選框的文本標(biāo)簽為“是”。如果用戶選中它,則返回值是“on”。
  (r) 單選按鈕。
  (l) 下拉列表框。
  Min —— 僅對(duì)數(shù)字型輸入值有效,在這里給出最小值。在本例中有一個(gè)“Age”(年齡)數(shù)字型輸入框,它的最小值設(shè)定為1。
  Max —— 該字段的值與輸入域形式有關(guān)。對(duì)于數(shù)字型輸入框,它表示的是允許的最大值。例如“Age”的Max值為100。對(duì)于文本輸入框,Max表示允許的最多字符個(gè)數(shù)。對(duì)于多行文本編輯框,Max表示可見(jiàn)區(qū)域的文本行數(shù)。
  Required —— 表示是否必須輸入。這種類型的值如果沒(méi)有輸入,則輸入驗(yàn)證程序?qū)?bào)告錯(cuò)誤。在表單中,必須輸入的值以星號(hào)標(biāo)記,并以腳注的形式提示用戶該類值必須輸入。
  本文的示例表單是一個(gè)ASP程序員調(diào)查表,在Definitons表中該表單的定義主要如下:
  FieldName Label Type Min Max Required
  Name 姓名 文本(t) - 50 否
  Age 年齡 數(shù)字(n) 1 100 否
  Sex 性別 單選按鈕(r) - - 是
  E-mail 郵件地址 文本(t) - - 是
  Language 編程語(yǔ)言 下拉列表框(l) - - 否
  表Lists用于保存輸入域定義的一些附加信息,本例有“Sex”和“Languages”兩個(gè)輸入值要用到它。表Lists非常簡(jiǎn)單,只包含如下三個(gè)字段:
  FieldName —— 當(dāng)前記錄屬于哪個(gè)表單輸入域
  Value —— 選擇項(xiàng)的值
  Label —— 用戶所看到的選擇項(xiàng)的提示文本
  輸入域“Sex”只能從兩個(gè)值選取:“男”或“女”?!癓anguage”列出了幾種可應(yīng)用于ASP環(huán)境的編程語(yǔ)言,包括:VBScript,JavaScript,C,Perl和“其他”。
  第三個(gè)表“Records”保存用戶提交的內(nèi)容,它也包含三個(gè)字段,每個(gè)記錄對(duì)應(yīng)用戶的一次提交:
  Record —— 備注類型,以查詢字符串形式保存的用戶輸入。
  Created —— 用戶提交該表單的日期和時(shí)間。 RemoteIP —— 表單提交者的IP地址。
  在實(shí)際應(yīng)用中可能要收集更多有關(guān)用戶的信息,為簡(jiǎn)單計(jì),本例只記錄提交時(shí)間和用戶IP地址這兩個(gè)附加信息。
  二、準(zhǔn)備工作
  在完成上述數(shù)據(jù)結(jié)構(gòu)和表單的定義之后,接下來(lái)就可以編寫腳本。腳本的任務(wù)是生成表單以及處理用戶提交的表單。
  無(wú)論是表單的生成還是處理,以下三個(gè)過(guò)程(任務(wù))都是必不可少的:第一是確定驗(yàn)證類型,在生成表單時(shí)驗(yàn)證類型值通過(guò)查詢字符串獲得,在處理表單時(shí)從表單隱藏域讀取。程序支持的表單驗(yàn)證方式共有以下四種類型:不進(jìn)行驗(yàn)證,客戶端JavaScript驗(yàn)證,服務(wù)器端ASP腳本驗(yàn)證,客戶端和服務(wù)器端都進(jìn)行驗(yàn)證(代號(hào)分別為0到3)。如果沒(méi)有在查詢字符串中指定合法的驗(yàn)證方式,則默認(rèn)第四種驗(yàn)證方式。這種驗(yàn)證處理方式使得我們可以靈活地應(yīng)用這個(gè)表單生成、處理系統(tǒng),當(dāng)客戶端禁止使用JavaScript驗(yàn)證時(shí)就可以僅在服務(wù)器端執(zhí)行驗(yàn)證過(guò)程。下面是確定驗(yàn)證類型的代碼:
  檢查驗(yàn)證類型
以下是引用片段:
  iValType = Request.QueryString("val") 
  If IsNumeric(iValType) = False Then iValType = 3 
  If iValType > 3 or iValType  0 Then iValType =3 
第二個(gè)任務(wù)是打開數(shù)據(jù)庫(kù)連接,創(chuàng)建兩個(gè)記錄集對(duì)象:RS對(duì)象,這是本程序中的主要記錄集對(duì)象,用來(lái)操作Definitions表;RSList對(duì)象,主要用于從Lists表讀取數(shù)據(jù)。示例程序提供兩種數(shù)據(jù)庫(kù)連接方法:使用ODBC DSN或不使用ODBC DSN(使用DSN時(shí)需要先創(chuàng)建名為Dynamic的DSN,使用DSN連接數(shù)據(jù)庫(kù)的代碼已經(jīng)被注釋掉)。
  第三個(gè)任務(wù)是在生成(或處理)表單腳本的前面(和后面)輸出一些靜態(tài)的HTML代碼,比如 HEAD > /HEAD >,以及在腳本運(yùn)行結(jié)束的時(shí)候釋放RS、RSList等對(duì)象占用的資源。
  除了完成上述任務(wù)的代碼外,示例應(yīng)用中其余ASP腳本可能生成的頁(yè)面有兩種類型:提問(wèn)表單(見(jiàn)上圖)以及表單提交后出現(xiàn)的結(jié)果頁(yè)面(后者同時(shí)還負(fù)責(zé)用戶提交結(jié)果的記錄)。要確定究竟運(yùn)行哪一部分腳本,最簡(jiǎn)單的方法就是檢查是否已經(jīng)提交表單:如是,則處理表單;否則生成表單。
  是生成表單還是處理表單? 

  If Len(Request.Form) = 0 Then 
  '生成表單 
  ...略... 
  Else 
  '處理表單 
  ...略... 
  End If 
123下一頁(yè)閱讀全文
您可能感興趣的文章:
  • ASP之處理用Javascript動(dòng)態(tài)添加的表單元素?cái)?shù)據(jù)的代碼
  • javascript 解決表單仍然提交即使監(jiān)聽處理函數(shù)返回false
  • jquery序列化form表單使用ajax提交后處理返回的json數(shù)據(jù)
  • javascript處理表單示例(javascript提交表單)
  • JavaScript 表單處理實(shí)現(xiàn)代碼
  • js實(shí)現(xiàn)表單多按鈕提交action的處理方法
  • JSP針對(duì)表單重復(fù)提交的處理方法
  • 基于JavaScript將表單序列化類型的數(shù)據(jù)轉(zhuǎn)化成對(duì)象的處理(允許對(duì)象中包含對(duì)象)
  • js表單處理中單選、多選、選擇框值的獲取及表單的序列化
  • javascript表單處理具體實(shí)現(xiàn)代碼(表單、鏈接、按鈕)

標(biāo)簽:麗江 溫州 昆明 昌都 泰州 家電維修 咸陽(yáng) 鐵嶺

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ASP中JavaScript處理復(fù)雜表單的生成與驗(yàn)證第1/3頁(yè)》,本文關(guān)鍵詞  ASP,中,JavaScript,處理,復(fù)雜,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ASP中JavaScript處理復(fù)雜表單的生成與驗(yàn)證第1/3頁(yè)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于ASP中JavaScript處理復(fù)雜表單的生成與驗(yàn)證第1/3頁(yè)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章