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不支持全局變量,但有時我們必須用全局變量,我們就可以把值先存在隱藏域里,它的值就不會丟失了。