三、表單的提交
既然表單是用來采集用戶輸入的數(shù)據(jù),那么,就應該保證用戶的數(shù)據(jù)被準確地提交到預定的地點,也就是說,我們在表單提交的時候,應該對用戶的數(shù)據(jù)進行檢驗,一來可以避免用戶誤輸數(shù)據(jù),二來可以避免用戶輸入非法的,或者說不合格的數(shù)據(jù);檢驗合格以后,還要保證用戶的數(shù)據(jù)提交到特定的程序。
1.數(shù)據(jù)的檢驗
數(shù)據(jù)的檢驗,通常有兩種程序:客戶端檢驗和服務器端檢驗?蛻舳藱z驗,比較快,服務器端檢驗,相對來說比較慢,為了確保安全,通常同時采用,這樣就可以避免用戶刻意破壞。 不管采用什么方式,數(shù)據(jù)檢驗的原理都是一樣的,一旦用戶輸入的數(shù)據(jù)不符合規(guī)定,就報錯,要求用戶重新輸入,客戶端檢驗常使用Javascrip腳本,服務器端的視系統(tǒng)而定,本文不對數(shù)據(jù)檢驗的具體程序設計進行探討,僅僅列舉幾個例子來說明。
樣例19:必填項,以及簡單的數(shù)據(jù)類型檢驗
分析:
- 本例給表單添加了onSubmit事件,通過onSubmit="return CheckDate()"指定提交前,必須通過函數(shù)CheckDate()來檢驗,如果不合格,返回輸入數(shù)據(jù);
- 數(shù)據(jù)檢驗的函數(shù)如下:
<script> function CheckDate(){ //取得輸入的數(shù)據(jù) userName = document.RedForm.userName.value; userEmail = document.RedForm.userEmail.value; //如果沒有輸入姓名 if (userName=="") { alert("請輸入姓名"); document.RedForm.userName.focus(); return false; }else{ //如果沒有輸入Email,或者Email地址錯誤(不含@) if ((userEmail=="")||(userEmail.indexOf("@")==-1)) { alert("請重新輸入Email地址"); document.RedForm.userEmail.focus(); return false; }else return true; } } </script> 2.表單的分支提交
有的時候,表單需要根據(jù)用戶的選擇,提交到不同的程序,怎么做呢? 通過腳本來檢測用戶的選擇分支,從而向不同的程序提交表單,看看樣例:
樣例20:分支提交
分析:這里首先用到的是form的onSubmit="TwoSubmit(this)" 然后根據(jù)選擇的分支,來分別遞交到不同的程序,TwoSubmit()函數(shù)如下:
<script> function TwoSubmit(form){ if (form.Ref[0].checked){ form.action = "cop.asp";//這里是分之一 }else{ form.action = "ind.asp";//這里是分之二 } form.submit(); } </script>
3.用任何元素提交表單
是不是只有按鈕或者圖片按鈕才能提交表單呢?當然不是,實際上,任何頁面元素都可以提交表單,不過嘛,都是通過腳本來完成的,下面我們就使用鏈接來代替Submit按鈕:
樣例21:用鏈接來提交表單
分析:
通過onClick="document.form.submit()"來提交表單;用onClick="document.form.reset()"來復位表單,這樣一來,任何一個元素都可以實現(xiàn)提交表單了。
出處:藍色理想
責任編輯:無意
上一頁 花樣表單 下一頁 常用技巧
◎進入論壇網(wǎng)頁制作、網(wǎng)站綜合版塊參加討論
|