淺析form表單

1.form表單有什么作用?有哪些常用的input 標(biāo)簽,分別有什么作用?

表單在網(wǎng)頁中主要負(fù)責(zé)數(shù)據(jù)采集功能。一個表單有三個基本組成部分: 表單標(biāo)簽:這里面包含了處理表單數(shù)據(jù)所用CGI程序的URL以及數(shù)據(jù)提交到服務(wù)器的方法。 表單域:包含了文本框、密碼框、隱藏域多行文本框復(fù)選框、單選框、下拉選擇框和文件上傳框等。 表單按鈕:包括提交按鈕、復(fù)位按鈕和一般按鈕;用于將數(shù)據(jù)傳送到服務(wù)器上的CGI腳本或者取消輸入,還可以用表單按鈕來控制其他定義了處理腳本的處理工作。

功能:

用于申明表單,定義采集數(shù)據(jù)的范圍,也就是<form>和</form>里面包含的數(shù)據(jù)將被提交到服務(wù)器或者電子郵件里。

常用的input標(biāo)簽

標(biāo)簽 描述
button 定義可點(diǎn)擊按鈕(多數(shù)情況下,用于通過 JavaScript 啟動腳本)。
checkbox 定義復(fù)選框。
file 定義輸入字段和 "瀏覽"按鈕,供文件上傳。
hidden 定義隱藏的輸入字段。
image 定義圖像形式的提交按鈕。
password 定義密碼字段。該字段中的字符被掩碼。圓點(diǎn)表示。
radio 定義單選按鈕。
reset 定義重置按鈕。重置按鈕會清除表單中的所有數(shù)據(jù)。
submit 定義提交按鈕。提交按鈕會把表單數(shù)據(jù)發(fā)送到服務(wù)器。
text 定義單行的輸入字段,用戶可在其中輸入文本。默認(rèn)寬度為 20 個字符。

[參考](http://www.w3school.com.cn/tags/att_input_type.asp

2、post 和 get 方式的區(qū)別?

區(qū)別:

1.get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù)。但是不絕對,get也可以傳送數(shù)據(jù)。
2.get是把參數(shù)數(shù)據(jù)隊(duì)列加到提交表單的ACTION屬性所指的URL中,值和表單內(nèi)各個字段一一對應(yīng),在URL中可以看到。post是通過HTTP post機(jī)制,將表單內(nèi)各個字段與其內(nèi)容放置在HTML HEADER內(nèi)一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。(get將表單中數(shù)據(jù)的按照variable=value的形式,添加到action所指向的URL后面,并且兩者使用“?”連接,而各個變量之間使用“&”連接);
post是將表單中的數(shù)據(jù)放在form的數(shù)據(jù)體中,按照變量和值相對應(yīng)的方式,傳遞到action所指向URL.
3.對于get方式,服務(wù)器端用Request.QueryString獲取變量的值,對于post方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。
4.get傳送的數(shù)據(jù)量較小,不能大于2KB。post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制。但理論上,IIS4中最大量為80KB,IIS5中為100KB。
5.get安全性非常低,post安全性較高。
6.HTTP 定義了與服務(wù)器交互的不同方法,最基本的方法是 GET 和 POST。事實(shí)上 GET 適用于多數(shù)請求,而保留 POST 僅用于更新站點(diǎn)。根據(jù) HTTP 規(guī)范,GET 用于信息獲取,而且應(yīng)該是 安全的和冪等的。所謂安全的意味著該操作用于獲取信息而非修改信息。換句話說,GET 請求一般不應(yīng)產(chǎn)生副作用。冪等的意味著對同一 URL 的多個請求應(yīng)該返回同樣的結(jié)果。完整的定義并不像看起來那樣嚴(yán)格。從根本上講,其目標(biāo)是當(dāng)用戶打開一個鏈接時,她可以確信從自身的角度來看沒有改變資源。 比如,新聞?wù)军c(diǎn)的頭版不斷更新。雖然第二次請求會返回不同的一批新聞,該操作仍然被認(rèn)為是安全的和冪等的,因?yàn)樗偸欠祷禺?dāng)前的新聞。反之亦然。POST 請求就不那么輕松了。POST 表示可能改變服務(wù)器上的資源的請求。仍然以新聞?wù)军c(diǎn)為例,讀者對文章的注解應(yīng)該通過 POST 請求實(shí)現(xiàn),因?yàn)樵谧⒔馓峤恢笳军c(diǎn)已經(jīng)不同了
7.在FORM提交的時候,如果不指定Method,則默認(rèn)為GET請求,F(xiàn)orm中提交的數(shù)據(jù)將會附加在url之后,以?分開與url分開。字母數(shù)字字符原 樣發(fā)送,但空格轉(zhuǎn)換為“+“號,其它符號轉(zhuǎn)換為%XX,其中XX為該符號以16進(jìn)制表示的ASCII(或ISO Latin-1)值。GET請求請?zhí)峤坏臄?shù)據(jù)放置在HTTP請求協(xié)議頭中,而POST提交的數(shù)據(jù)則放在實(shí)體數(shù)據(jù)中;GET方式提交的數(shù)據(jù)最多只能有1024字節(jié),而POST則沒有此限制。

3.在input里,name 有什么作用?

name屬性規(guī)定了input元素的名稱,用于后續(xù)提交表單數(shù)據(jù),等于某類數(shù)據(jù)的索引.例如,上傳表單時,如果姓名這一欄input沒有"name",那么即使填好姓名,上傳后,后臺程序無法理解這個內(nèi)容是屬于數(shù)據(jù),而"name"定義了這個數(shù)據(jù)的索引.

4.radio 如何 分組?

每一個的name屬性都取同一個名字,即為同一組,同一組的radio,只能單選。

5.placeholder 屬性有什么作用?

placeholder的參數(shù)可以作為輸入的提示(提示用戶輸入內(nèi)容和格式),與value不同,placeholder并不是input中真的內(nèi)容,在輸入時placeholder會消失而不是代替。

6.type=hidden隱藏域有什么作用? 舉例說明

隱藏不想讓用戶看到的信息,但是這些信息對于Web應(yīng)用又是非常必要的。
暫存信息:后端在構(gòu)造web頁面的過程中,通過hidden隱藏域在頁面中添加了相關(guān)數(shù)據(jù)信息(用戶對網(wǎng)頁進(jìn)行操作時可能會用到這些數(shù)據(jù)信息)
信息安全:后端在構(gòu)造web頁面的過程中,可以通過hidden隱藏域在頁面中添加相關(guān)的驗(yàn)證信息,當(dāng)form表單被提交后,服務(wù)器會收到該驗(yàn)證信息,通過一定的算法校驗(yàn)該驗(yàn)證信息,可以有效防止非法請求對數(shù)據(jù)庫的增刪改查,提高了web應(yīng)用的安全性。

舉例

1.可以用來存儲記錄用戶身份的信息,當(dāng)表單提交時以確定用戶身份。這種方式相較于cookie而言更簡單,而且不會有瀏覽器不支持和用戶禁用cookie的煩惱。
2.有些時候一個form里有多個提交按鈕,怎樣使程序能夠分清楚到底用戶是按那一個按鈕提交上來的呢?我們就可以寫一個隱藏域,然后在每一個按鈕處加上onclick="document.form.command.value="xx"然后我們接到數(shù)據(jù)后先檢查command的值就會知道用戶是按的那個按鈕提交上來的。
3.有時候一個網(wǎng)頁中有多個form,我們知道多個form是不能同時提交的,但有時這些form確實(shí)相互作用,我們就可以在form中添加隱藏域來使它們聯(lián)系起來。
4.javascript不支持全局變量,但有時我們必須用全局變量,我們就可以把值先存在隱藏域里,它的值就不會丟失了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容