亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2007年03月25日 00:00:00   作者:  

  三、動(dòng)態(tài)生成表單
  生成表單時(shí),程序按照Definitons表中的各個(gè)輸入域定義記錄,依次生成相應(yīng)的表單HTML代碼和JavaScript代碼。HTML代碼中首先要生成的是文本標(biāo)簽:
以下是引用片段:
  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") 
  然后程序檢查當(dāng)前輸入域是否必須輸入。如果必須,則在標(biāo)簽文本之后加一個(gè)星號(hào)(表示該值必須輸入),同時(shí)對(duì)于必須輸入的值,還要生成相應(yīng)的JavaScript代碼來驗(yàn)證它。對(duì)于單選按鈕或選擇列表,需進(jìn)一步檢查用戶確實(shí)選擇了某個(gè)選項(xiàng);對(duì)于所有其他輸入類型,只要檢查輸入值不為空即可。
  緊接文本標(biāo)簽的是表單的輸入元素,這些元素的HTML代碼根據(jù)Definitions表中指定的類型和屬性生成。再接下來就是根據(jù)輸入值要求生成執(zhí)行客戶端驗(yàn)證任務(wù)的JavaScript代碼。對(duì)于本例,只有數(shù)字型的值需要進(jìn)一步檢查以保證用戶的輸入確實(shí)是數(shù)字,而且數(shù)字值在許可的最大值和最小值之間。生成上述代碼之后,就可以結(jié)束一個(gè)表格行(也就是一個(gè)輸入域)繼續(xù)處理Definitions表的下一個(gè)記錄。一旦所有的數(shù)據(jù)庫(kù)記錄處理完畢,下一步就可以加入“提交”按鈕和“清除”按鈕的HTML代碼。如果換個(gè)角度來看,程序在這里的任務(wù)就是根據(jù)數(shù)據(jù)庫(kù)記錄生成各個(gè)輸入域,每個(gè)輸入域占用一個(gè)表格行,每個(gè)表格行二個(gè)單元:第一個(gè)單元用來顯示文本標(biāo)簽,第二個(gè)單元顯示輸入元素本身(代碼見dForm.asp)。
  上述過程結(jié)束之后,表單的HTML代碼和驗(yàn)證用JavaScript函數(shù)分別保存到了變量sHTML和sJavaScript中。在把這些內(nèi)容寫入頁(yè)面之前,程序檢查客戶端是否要求執(zhí)行JavaScript驗(yàn)證,如果不要求執(zhí)行這類驗(yàn)證,則清除sJavaScript變量:
  If iValType = 0 or iValType = 2 Then sJavaScript = ""
  在輸出BODY標(biāo)記之后,程序輸出如下JavaScript函數(shù):
以下是引用片段:
  < SCRIPT LANGUAGE="JavaScript" >  
  < !--  
  function validate(TheForm){  
  //客戶端表單驗(yàn)證  
  < %=sJavaScript% >  
  return true;  
  }  
    
  function CheckRadio(objRadio){  
  //單選按鈕中是否有某個(gè)值被選中  
  for(var n = 0; n < objRadio.length; n++){  
  if(objRadio[n].checked){  
  return true;  
  }  
  }  
  return false;  
  }  
    
  function CheckList(objList){  
  //是否已經(jīng)在選擇列表中選擇了某個(gè)值  
  for(var n = 1; n < objList.length; n++){  
  if(objList.options[n].selected){  
  return true;  
  }  
  }  
  return false;  
  }  
  //-- >  
  < /Script > 
  如果客戶端不需要JavaScript驗(yàn)證,則validate函數(shù)只剩下一個(gè)“return true”語句。上面代碼中的后面兩個(gè)靜態(tài)JavaScript函數(shù)(CheckRadio和CheckList)用于驗(yàn)證單選按鈕和下拉列表框,當(dāng)這兩種輸入域需要驗(yàn)證時(shí)validate函數(shù)將調(diào)用它們。
  現(xiàn)在可以開始把表單寫入頁(yè)面:
  < FORM ACTION="./dform.asp" METHOD="POST" NAME="MyForm" onSubmit="return validate(this)" >
  在這里,只有當(dāng)validate函數(shù)返回true時(shí)才執(zhí)行表單提交操作。因此當(dāng)客戶端JavaScript驗(yàn)證功能關(guān)閉時(shí),validate函數(shù)將自動(dòng)返回true。
  接下來要加入的是名為val的隱藏域。如前所述,該值指示表單的驗(yàn)證模式。
  < INPUT TYPE="HIDDEN" NAME="val" VALUE="< %=iValType% >" >
  當(dāng)用戶提交表單時(shí),處理腳本將根據(jù)該值確定是否執(zhí)行服務(wù)器端驗(yàn)證。
  然后輸出的是表格標(biāo)記以及表格標(biāo)題。標(biāo)題保存在變量sTitleLabel中,該值在腳本開始執(zhí)行時(shí)初始化:
以下是引用片段:
  < TABLE BORDER="0" >  
  < TR >  
  < TD COLSPAN="2" ALIGN="CENTER" >  
  < H2 >< %=sTitleLable% >< /H2 >  
  < /TD >  
  < /TR > 

相關(guān)文章

最新評(píng)論