1.form表單有什么作用?有哪些常用的input 標(biāo)簽,分別有什么作用?
表單對(duì)于用戶而言是數(shù)據(jù)的錄入和提交的界面,對(duì)于網(wǎng)站而言是獲取用戶信息的途徑。它可以將用戶輸入的信息提交給網(wǎng)站服務(wù)器。
-
<input name="xxx" type="text">
普通文本輸入框,用于提交文本信息。 -
<input name="xxx" type="password">
密碼輸入框,用于輸入密碼。 -
<input name="xxx" type="radio">
單選框,用于用戶勾選單選信息。 -
<input name="xxx" type="checkbox">
多選框,用于用戶勾選多選信息。 -
<input name="xxx" type="button">
用于在頁面上添加一個(gè)普通按鈕。按鈕可賦予不同的功能。 -
<input name="xxx" type="submit">
用于在頁面上添加一個(gè)提交按鈕,用于提交表單數(shù)據(jù)。 -
<input name="xxx" type="reset">
用于在頁面上添加一個(gè)重置按鈕,便于用戶修改所填信息。 -
<input name="xxx" type="image">
用一幅圖像作為按鈕。 -
<input name="xxx" type="file">
用于用戶上傳文件。 -
<input name="xxx" type="hidden">
隱藏的表單,通常用于數(shù)據(jù)驗(yàn)證,提高網(wǎng)站安全性。
2.post 和 get 方式的區(qū)別?
get:將表單的填充信息以key=value的形式拼接到action屬性所指的url中,并跳轉(zhuǎn)到這個(gè)url。例如文本輸入框中input的name屬性值為key,輸入的內(nèi)容為value
post:是通過HTTPpost機(jī)制,將表單內(nèi)各個(gè)字段與其內(nèi)容放置在HTML HEADER內(nèi)一起傳送到ACTION屬性所指的URL地址。用戶看不到這個(gè)過程。
- get方式會(huì)跳轉(zhuǎn)url地址,post方式不會(huì)。
- get方式安全性低,post方式安全性高。
- get方式傳輸?shù)臄?shù)據(jù)量較小,post方式傳輸數(shù)據(jù)量較大。
一般向后臺(tái)傳輸關(guān)鍵詞,向后臺(tái)查詢索要數(shù)據(jù),可以用get。
而主要功能是將用戶輸入的數(shù)據(jù)傳輸給后臺(tái)的情況下,一般用post。
3.在input里,name 有什么作用?
name表示該表單項(xiàng)的名稱,用于跟其他表單項(xiàng)區(qū)別開來。在提交數(shù)據(jù)時(shí)name的值也會(huì)一并提交以區(qū)分?jǐn)?shù)據(jù)種類。
4.radio 如何 分組?
<input name="單選按鈕名稱" type="radio" value="單選按鈕取值" />
在多個(gè)單選按鈕中,name屬性值相同的為一組,一組中僅有一個(gè)選項(xiàng)可選。name屬性值不同則不屬同一組,選項(xiàng)互不影響。
5.placeholder 屬性有什么作用?
用于在表單輸入框內(nèi)添加提示信息,該提示信息會(huì)在輸入字段為空時(shí)顯示,并會(huì)在字段獲得焦點(diǎn)時(shí)消失。該提示信息僅作為對(duì)用戶的提示,不會(huì)跟隨表單數(shù)據(jù)一起提交服務(wù)器。
6.type=hidden隱藏域有什么作用? 舉例說明
hidden隱藏域無外乎下面六點(diǎn)作用:
- 隱藏域在頁面中對(duì)于用戶是不可見的,在表單中插入隱藏域的目的在于收集或發(fā)送信息,以利于被處理表單的程序所使用。瀏覽者單擊發(fā)送按鈕發(fā)送表單的時(shí)候,隱藏域的信息也被一起發(fā)送到服務(wù)器。
- 有些時(shí)候我們要給用戶一信息,讓他在提交表單時(shí)提交上來以確定用戶身份,如sessionkey,等等.當(dāng)然這些東西也能用cookie實(shí)現(xiàn),但使用隱藏域就簡(jiǎn)單的多了.而且不會(huì)有瀏覽器不支持,用戶禁用cookie的煩惱。
- 有些時(shí)候一個(gè)form里有多個(gè)提交按鈕,怎樣使程序能夠分清楚到底用戶是按那一個(gè)按鈕提交上來的呢?我們就可以寫一個(gè)隱藏域,然后在每一個(gè)按鈕處加上onclick="document.form.command.value="xx""然后我們接到數(shù)據(jù)后先檢查command的值就會(huì)知道用戶是按的那個(gè)按鈕提交上來的。
- 有時(shí)候一個(gè)網(wǎng)頁中有多個(gè)form,我們知道多個(gè)form是不能同時(shí)提交的,但有時(shí)這些form確實(shí)相互作用,我們就可以在form中添加隱藏域來使它們聯(lián)系起來。
- javascript不支持全局變量,但有時(shí)我們必須用全局變量,我們就可以把值先存在隱藏域里,它的值就不會(huì)丟失了。
- 還有個(gè)例子,比如按一個(gè)按鈕彈出四個(gè)小窗口,當(dāng)點(diǎn)擊其中的一個(gè)小窗口時(shí)其他三個(gè)自動(dòng)關(guān)閉.可是IE不支持小窗口相互調(diào)用,所以只有在父窗口寫個(gè)隱藏域,當(dāng)小窗口看到那個(gè)隱藏域的值是close時(shí)就自己關(guān)掉。
例如:
-
<input name="xxx" type="hidden" value="123abc">
網(wǎng)頁開發(fā)者在一個(gè)表單中添加此隱藏域。當(dāng)用戶在提交表單時(shí),此隱藏域的信息也會(huì)被一起提交到服務(wù)器。服務(wù)器就可以辨別有此隱藏域數(shù)據(jù)的是用戶正常途徑提交上來的,而有些沒有此隱藏域數(shù)據(jù)的就可能是惡意的csrf跨站攻擊。從而達(dá)到一定的防csrf攻擊的效果。