什么是FORM表單:
表單是用來提交資料、意見,規(guī)范流程執(zhí)行過程的格式。表單在網(wǎng)頁中主要負責數(shù)據(jù)采集功能。
一個表單有三個基本組成部分:
- 表單標簽:這里面包含了處理表單數(shù)據(jù)所用
CGI程序的URL以及數(shù)據(jù)提交到服務(wù)器的方法。 - 表單域:包含了文本框、密碼框、隱藏域、多行文本框、復選框、單選框、下拉選擇框和文件上傳框等。
- 表單按鈕:包括提交按鈕、復位按鈕和一般按鈕;用于將數(shù)據(jù)傳送到服務(wù)器上的
CGI腳本或者取消輸入,還可以用表單按鈕來控制其他定義了處理腳本的處理工作。
表單標簽<form></form>
功能:用于申明表單,定義采集數(shù)據(jù)的范圍,也就是<form>和</form>里面包含的數(shù)據(jù)將被提交到服務(wù)器或者電子郵件里。所有要提交的內(nèi)容必須被<form>/</form>包圍.
語法:
<form actlon="URL" method="get/post" enctype="text/plain" target="...">. . .</form>
actlon:表單提交的地址
method=get或post指明提交表單的HTTP方法.
target:在何處打開action(規(guī)定當提交表單時,向何處發(fā)送表單數(shù)據(jù))
enctype:
-
application/x-www-form-urlencoded:在發(fā)送前編碼所有字符(默認) -
text/plain: 空格轉(zhuǎn)換為“+”加號,但不對特殊字符編碼 -
multipart/form-data:使用包含文件上傳控件的表單時,必須使用該值。
get與post區(qū)別:
-
get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù)。 -
get是把參數(shù)數(shù)據(jù)隊列加到提交表單的ACTION屬性所指的URL中,值和表單內(nèi)各個字段一一對應(yīng),在URL中可以看到。post是通過HTTP post機制,將表單內(nèi)各個字段與其內(nèi)容放置在HTML HEADER內(nèi)一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。 - 對于
get方式,服務(wù)器端用Request.QueryString獲取變量的值,對于post方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。
4.get傳送的數(shù)據(jù)量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大,一般被默認為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。 -
get安全性非常低,post安全性較高。但是執(zhí)行效率卻比Post方法好。
- get方式的安全性較post方式要差一些,所以,包含一些重要的信息的話,簡易使用post數(shù)據(jù)提交方式
- 在做查詢統(tǒng)計的時候,使用get方式要更好一些;而在做數(shù)據(jù)的添加,修改或刪除操作時,建議使用post數(shù)據(jù)提交方式
表單域:
表單域包含了文本框、密碼框、隱藏域、復選框、單選框和下拉選擇框等,用于采集用戶的輸入或選擇的數(shù)據(jù),下面分別講述這些表單域的代碼格式.
文本框:
文本框是一種讓訪問者自己輸入內(nèi)容的表單對象,通常被用來填寫單個字或者簡短的回答,如姓名、地址等。
代碼格式:
<input type="text" name="..." >
屬性解釋:
type="text"定義單行文本輸入框;
name屬性定義文本框的名稱,要保證數(shù)據(jù)的準確采集,必須定義一個獨一無二的名稱;
例:
<input type="text" name="example1" >
密碼框:
是一種特殊的文本域,用于輸入密碼。當訪問者輸入密碼時,文字會被星號或其它符號代替,而輸入的密碼會被隱藏。
代碼格式:
<input type="password" name="..." placeholder="...">
屬性解釋:
type="password"定義密碼框;
name屬性定義密碼框的名稱,要保證數(shù)據(jù)的準確采集,必須定義一個獨一無二的名稱;
placeholder:密碼輸入框顯示內(nèi)容
例:
<input type="password" name="password"placeholder="輸入密碼">
隱藏域:
隱藏域是用來收集或發(fā)送信息的不可見元素,對于網(wǎng)頁的訪問者來說,隱藏域是看不見的。當表單被提交時,隱藏域就會將信息用你設(shè)置時定義的名稱和值發(fā)送到服務(wù)器上。
代碼格式:
<input type="hidden" name="..." value="...">
屬性解釋:
type="hidden"定義隱藏域;
name屬性定義隱藏域的名稱,要保證數(shù)據(jù)的準確采集,必須定義一個獨一無二的名稱;
value屬性定義隱藏域的值
例如:
<input type="hidden" name="ExPws" value="dd">
復選框:
復選框允許在待選項中選中一項以上的選項。每個復選框都是一個獨立的元素,都必須有一個唯一的名稱。
代碼格式:
<input type="checkbox" name="..." value="...">
屬性解釋:
type="checkbox"定義復選框;
name屬性定義復選框的名稱,要保證數(shù)據(jù)的準確采集,必須定義一個獨一無二的名稱;
value屬性定義復選框的值
例:
- <input type="checkbox" name="hobby" value="read">讀書
- <input type="checkbox" name="hobby" value="music">音樂
單選框:
當需要訪問者在待選項中選擇唯一的答案時,就需要用到單選框了。
代碼格式:
- <input type="radio" name="..." value="...">
屬性解釋:
type="radio"定義單選框;
name屬性定義單選框的名稱,要保證數(shù)據(jù)的準確采集,單選框都是以組為單位使用的,在同一組中的單選項都必須用同一個名稱;
value屬性定義單選框的值,在同一組中,它們的域值必須是不同的。
例:
- <input type="radio" name="sex" value="男">男
- <input type="radio" name="sex" value="女">女
文件上傳框:
有時候,需要用戶上傳自己的文件,文件上傳框看上去和其它文本域差不多,只是它還包含了一個瀏覽按鈕。訪問者可以通過輸入需要上傳的文件的路徑或者點擊瀏覽按鈕選擇需要上傳的文件。
注意:在使用文件域以前,請先確定你的服務(wù)器是否允許匿名上傳文件。表單標簽中必須設(shè)置enctype="multipart/form-data"來確保文件被正確編碼;另外,表單的傳送方式必須設(shè)置成post。
代碼格式:
- <input type="file" name="..."accept="image/png, image/jpeg">
屬性解釋:
type="file"定義文件上傳框;
name屬性定義文件上傳框的名稱,要保證數(shù)據(jù)的準確采集,必須定義一個獨一無二的名稱;
accept規(guī)定能夠通過文件上傳進行提交的文件類型.
例:
- <input type="file" name="myfile"accept="image/png" >
下拉選擇框:
下拉選擇框允許你在一個有限的空間設(shè)置多種選項。
代碼格式:
- <select name="..." size="..." multiple>
- <option value="..." selected>...</option>
- ...
- </select>
屬性解釋:
size屬性定義下拉選擇框的行數(shù);
name屬性定義下拉選擇框的名稱;
multiple屬性表示可以多選,如果不設(shè)置本屬性,那么只能單選;
value屬性定義選擇項的值;
selected屬性表示默認已經(jīng)選擇本選項。
例:
- <select name="mySel" size="1">
- <option value="beijing" selected>北京</option>
- <option value="shanghai">上海</option>
- </select>
例2:按ctrl可多選
- <select name="mySelt" size="3" multiple>
- <option value="beijing" selected>北京</option>
- <option value="shanghai">上海</option>
- <option value="hangzhou">杭州</option>
- </select>
表單按鈕:
表單按鈕控制表單的運作。
提交按鈕
提交按鈕用來將輸入的信息提交到服務(wù)器。
代碼格式:
- <input type="submit" name="..." value="...">
屬性解釋:
type="submit"定義提交按鈕;
name屬性定義提交按鈕的名稱;
value屬性定義按鈕的顯示文字;
例:
- <input type="submit" name="mySent" value="發(fā)送">
復位按鈕:
復位按鈕用來重置表單。
代碼格式:
- <input type="reset" name="..." value="...">
屬性解釋:
type="reset"定義復位按鈕;
name屬性定義復位按鈕的名稱;
value屬性定義按鈕的顯示文字;
例:
- <input type="reset" name="myCancle" value="取消">
文本輸入框:
文本區(qū)中可容納無限數(shù)量的文本,其中的文本的默認字體是等寬字體(通常是 Courier)。
textarea:定義多行的文本輸入控件
代碼格式:
- <textarea rows="3" cols="20">
-123456789
- </textarea>
屬性:
- rows:文本的可見行數(shù)。
- cols:文本區(qū)內(nèi)的可見寬度。
- autofocus:規(guī)定在頁面加載后文本區(qū)域自動獲得焦點。
- disabled:規(guī)定禁用該文本區(qū)。
- form (值:
form_id):規(guī)定文本區(qū)域所屬的一個或多個表單。 - maxlength :規(guī)定文本區(qū)域的最大字符數(shù)。
- name(值:
name_of_textarea):文本區(qū)的名稱。 - placeholder(值:
text):規(guī)定描述文本區(qū)域預(yù)期值的簡短提示。 - readonly:規(guī)定文本區(qū)為只讀。
- required:規(guī)定文本區(qū)域是必填的。
- wrap(值:
hard,soft):規(guī)定當在表單中提交時,文本區(qū)域中的文本如何換行。
label標簽:
<label>標簽為input元素定義標注(標記)。
label:不會向用戶呈現(xiàn)任何特殊效果。不過,它為鼠標用戶改進了可用性。如果您在 label 元素內(nèi)點擊文本,就會觸發(fā)此控件。就是說,當用戶選擇該標簽時,瀏覽器就會自動將焦點轉(zhuǎn)到和標簽相關(guān)的表單控件上。
屬性:
for(值:id):規(guī)定 label綁定到哪個表單元素。
form(值:formid):規(guī)定label 字段所屬的一個或多個表單。