form表單有什么作用即寒?有哪些常用的input 標(biāo)簽,分別有什么作用?
表單的作用是搜集用戶的輸入躺率,用戶提交表單時向服務(wù)器傳輸數(shù)據(jù)龙宏,從而實現(xiàn)用戶與web服務(wù)器的交互棵逊。
input標(biāo)簽根據(jù)type屬性不同,分以下常用標(biāo)簽:
- button——定義可點擊的按鈕
- checkbox——定義復(fù)選框
- radio——定義單選按鈕
- text——定義單行輸入框银酗,可在其中輸入文本
- file——定義輸入字段和“瀏覽”按鈕辆影,供文件上傳
- hidden——定義隱藏的輸入字段
- image——定義圖像形式的提交按鈕
- password——定義密碼字段,該字段中的字符被掩碼
- reset——定義重置按鈕黍特,用于清除表單中的所有數(shù)據(jù)
- submit——定義提交按鈕蛙讥,把表單數(shù)據(jù)發(fā)給服務(wù)器
post 和 get 方式的區(qū)別?
post和get是使用http協(xié)議在客戶端和服務(wù)器之間進(jìn)行請求-響應(yīng)時灭衷,兩種最常用到的方法次慢。get是從服務(wù)器上獲取數(shù)據(jù),post是向服務(wù)器傳送數(shù)據(jù)翔曲。
get方式:
get常用于向指定的資源請求數(shù)據(jù)迫像。使用get時,請求時發(fā)送的表單數(shù)據(jù)會顯示在url上瞳遍,多個參數(shù)也會使用&連接闻妓。
雖然http協(xié)議沒有對傳輸數(shù)據(jù)大小的限制,也沒有對url長度的限制掠械,但實際開發(fā)中特定的瀏覽器和服務(wù)器對于url的長度是有限制的由缆,這就導(dǎo)致使用get方法時,傳輸數(shù)據(jù)會受到url限制份蝴。
同時由于數(shù)據(jù)明文傳輸犁功,使得GET所提交數(shù)據(jù)的安全性無法得到保障,當(dāng)頁面被收藏為書簽婚夫,或被瀏覽器緩存浸卦,或者其他人查看瀏覽器記錄時,就很容易看到所提交的數(shù)據(jù)案糙。
但get對服務(wù)器上被get的指定數(shù)據(jù)來說是安全的限嫌,一份數(shù)據(jù)不管被get請求多少次,都只是在對這份數(shù)據(jù)進(jìn)行查詢操作时捌,這份數(shù)據(jù)本身是不會改變的怒医。
post方式:
post常用于向指定的資源提交要被處理的數(shù)據(jù),這對被指定資源來說是不安全的奢讨,因為post方法會更新指定資源的數(shù)據(jù)稚叹。
post提交的數(shù)據(jù)是放置在http消息主體中的,url不會因為post請求發(fā)生改變,這樣所傳輸數(shù)據(jù)的大小理論上就不受限制了扒袖,但在實際應(yīng)用中還是會受到各個web服務(wù)器配置的限制塞茅,但對比get方法來說,post已是傳輸大量數(shù)據(jù)的更佳選擇季率。
由于post傳輸?shù)臄?shù)據(jù)都放在http包中野瘦,所以post對于所傳輸?shù)臄?shù)據(jù)更安全,url中不會顯示數(shù)據(jù)內(nèi)容飒泻,頁面也無法被瀏覽器緩存或收藏鞭光,也不會從瀏覽器歷史記錄中暴露數(shù)據(jù)內(nèi)容。但如果在post傳輸數(shù)據(jù)中選擇“后退”操作泞遗,會導(dǎo)致表單數(shù)據(jù)可能重復(fù)提交惰许。
綜上可以看出,在搜索引擎中檢索信息時刹孔,應(yīng)使用get方法啡省,而在注冊娜睛、登錄髓霞、提交用戶信息等場景中,應(yīng)使用post方法畦戒。
在input里方库,name 有什么作用?
- 規(guī)定input元素的名稱障斋,用于對提交到服務(wù)器后的表單數(shù)據(jù)進(jìn)行標(biāo)識纵潦;
- 在客戶端提供給 JavaScript,使其可以引用表單數(shù)據(jù)垃环;
- 用于單選/多選分組邀层,相同name為一組。
- 只有設(shè)置了 name 屬性的表單元素才能在提交表單時傳遞它們的值遂庄。
radio 如何 分組?
具有相同 name 屬性值的 radio 為同一組寥院,例如:
<label>性別:</label>
<input type="radio" name="sex" value="man" checked>男
<input type="radio" name="sex" value="woman">女
<label>取向:</label>
<input type="radio" name="orientation" value="man">男
<input type="radio" name="orientation" value="woman" checked>女
placeholder屬性有什么作用?
提供可描述輸入字段預(yù)期值的提示信息,該提示會在輸入字段為空時顯示涛目,并會在字段獲得焦點時消失秸谢。
type=hidden隱藏域有什么作用? 舉例說明
基本語法:
<input type="hidden" name="file-name" value="value">
作用
隱藏域在頁面中對于用戶是不可見的,在表單中插入隱藏域的目的在于收集或發(fā)送信息霹肝,以利于被處理表單的程序所使用估蹄。瀏覽者單擊發(fā)送按鈕發(fā)送表單的時候,隱藏域的信息也被一起發(fā)送到服務(wù)器沫换。
有些時候我們要給用戶一信息臭蚁,讓他在提交表單時提交上來以確定用戶身份,如sessionkey等。當(dāng)然這些東西也能用cookie實現(xiàn)垮兑,但使用隱藏域就簡單的多了.而且不會有瀏覽器不支持炭晒,用戶禁用cookie的煩惱。
有些時候一個form里有多個提交按鈕甥角,怎樣使程序能夠分清楚到底用戶是按那一個按鈕提交上來的呢网严?我們就可以寫一個隱藏域,然后在每一個按鈕處加上onclick=”document.form.command.value=”xx””然后我們接到數(shù)據(jù)后先檢查command的值就會知道用戶是按的那個按鈕提交上來的嗤无。
有時候一個網(wǎng)頁中有多個form震束,我們知道多個form是不能同時提交的,但有時這些form確實相互作用当犯,我們就可以在form中添加隱藏域來使它們聯(lián)系起來垢村。
JavaScript不支持全局變量,但有時我們必須用全局變量嚎卫,我們就可以把值先存在隱藏域里嘉栓,它的值就不會丟失了。
還有個例子拓诸,比如按一個按鈕彈出四個小窗口侵佃,當(dāng)點擊其中的一個小窗口時其他三個自動關(guān)閉.可是IE不支持小窗口相互調(diào)用,所以只有在父窗口寫個隱藏域奠支,當(dāng)小窗口看到那個隱藏域的值是close時就自己關(guān)掉馋辈。
被忽略的enctype
當(dāng) method
屬性值為 post 時
, enctype 是提交form給服務(wù)器的內(nèi)容的 MIME 類型 ”睹眨可能的取值有:
-
application/x-www-form-urlencoded
: 如果屬性未指定時的默認(rèn)值(key=value)迈螟。 -
multipart/form-data
: 這個值用于一個type
屬性設(shè)置為 "file" 的<input>
元素。(可用來接收file數(shù)據(jù)) text/plain (HTML5)