1. form表單有什么作用
<form name="myform" action="url" method="get/post"><form>
form表單用于把用戶輸入的數(shù)據(jù)提交給后臺服務(wù)器
name表示提交的表單名稱,action表示數(shù)據(jù)提交的地址,methods表示數(shù)據(jù)提交的方式,有g(shù)et和post,默認(rèn)是get
常用的input標(biāo)簽類型(type)
單行文本輸入框
<input name="username" type="text" placeholder="請輸入用戶名" maxlength=10 />
密碼輸入框
<input name="username" type="password" placeholder="請輸入密碼“”>復(fù)選框
<input name="hobby" type="checkbox"> 讀書
單選框
<input name="sex" type="radio">女
<input name="sex" type="radio">男file
<input name="myfile" type="file" accept="image/png">
提交輸入
<input type="submit">
重置輸入
<input type="reset" value="reset">
button
<input type="button" value="Button" />
hidden
<input type="hidden" name=" " value=" ">
input里面的name
name規(guī)定了input元素的名稱
name屬性用于對提交到服務(wù)器后的表單數(shù)據(jù)進(jìn)行標(biāo)識,或者在客戶端通過JS引用表單數(shù)據(jù)
注釋:只有設(shè)置了 name 屬性的表單元素才能在提交表單時傳遞它們的值。
2. GET和 POST方式的區(qū)別
HTTP定義了與服務(wù)器交互的不同方法,最基本的方法有4種,分別是GET,POST,PUT,DELETE。URL全稱是資源描述符,我們可以這樣認(rèn)為:一個URL地址,它用于描述一個網(wǎng)絡(luò)上的數(shù)據(jù),而HTTP中的GET,POST,PUT,DELETE就對應(yīng)著對這個數(shù)據(jù)的查,改,增,刪4個操作。到這里,大家應(yīng)該有個大概的了解了,GET一般用于獲取/查詢數(shù)據(jù),而POST一般用于更新數(shù)據(jù)。
原理不同
- GET用于信息獲取,而且應(yīng)該是安全的和冪等的
- 這里的安全是說GET操作不會修改數(shù)據(jù),只會查詢數(shù)據(jù),不會改變服務(wù)器資源狀態(tài)。
- 冪等意味著對同一URL的多個請求應(yīng)該返回同樣的結(jié)果。這里我再解釋一下冪等這個概念:
冪等(idempotent、idempotence)是一個數(shù)學(xué)或計算機(jī)學(xué)概念,常見于抽象代數(shù)中。
冪等有以下幾種定義:
對于單目運(yùn)算,如果一個運(yùn)算對于在范圍內(nèi)的所有的一個數(shù)多次進(jìn)行該運(yùn)算所得的結(jié)果和進(jìn)行一次該運(yùn)算所得的結(jié)果是一樣的,那么我們就稱該運(yùn)算是冪等的。比如絕對值運(yùn)算就是一個例子,在實(shí)數(shù)集中,有abs(a)=abs(abs(a))。
對于雙目運(yùn)算,則要求當(dāng)參與運(yùn)算的兩個值是等值的情況下,如果滿足運(yùn)算結(jié)果與參與運(yùn)算的兩個值相等,則稱該運(yùn)算冪等,如求兩個數(shù)的最大值的函數(shù),有在在實(shí)數(shù)集中冪等,即max(x,x) = x。
- 運(yùn)用在這里,冪等就是不管你操作多少次,結(jié)果都一樣,比如你 get index,不過你 get 多少次,都是獲取 index。但是 post 就不冪等,因?yàn)?post第一次是新建一個post,第二次是新建第二個。
- POST請求可能改變服務(wù)器上的資源
表象不同
- GET 請求的數(shù)據(jù)會拼接到action屬性所指的URL地址之后,比如jirengu.com?username=tail&password=123456
POST則是把提交的數(shù)據(jù)打包到HTTP包的包體中,也就是HTML HEADER內(nèi)一起傳送到action屬性所指的URL地址。 - GET與POST 提交的數(shù)據(jù)大小理論上沒有限制,但是由于GET是通過URL提交數(shù)據(jù),那么GET提交數(shù)據(jù)的大小就由URL決定了,理論上URL長度也沒有限制,URL長度取決于瀏覽器對其的限制。POST數(shù)據(jù)起限制作用的是服務(wù)器的處理能力。
其他
- GET后退按鈕/刷新無害,POST數(shù)據(jù)會被重新提交(瀏覽器應(yīng)該告知用- 戶數(shù)據(jù)會被重新提交)。
- GET書簽可收藏,POST為書簽不可收藏。
- GET能被緩存,POST不能緩存 。
- GET歷史參數(shù)保留在瀏覽器歷史中。POST參數(shù)不會保存在瀏覽器歷史中。
- GET編碼類型application/x-www-form-url,POST編碼類型application/x-www-form-urlencoded 或 multipart/form-data。為二進(jìn)制數(shù)據(jù)使用多重編碼。
- GET只允許 ASCII 字符。POST沒有限制。也允許二進(jìn)制數(shù)據(jù)
3. radio 如何 分組?
radio通過name值來分組,name相同的為一組。
4. placeholder 屬性有什么作用?
placeholder 是HTML5的新屬性
placeholder 屬性提供可描述輸入字段預(yù)期值的提示信息。
該提示會在輸入字段為空時顯示,并會在字段獲得焦點(diǎn)時消失。
注釋:placeholder 屬性適用于以下的 <input> 類型:text, password、 search, url, telephone,以及 email
5. type=hidden隱藏域有什么作用?
隱藏域具體寫法:
<input type="hidden" name="field_name" value="value">
hidden隱藏域無外乎下面六點(diǎn)作用:
- 隱藏域在頁面中對于用戶是不可見的,在表單中插入隱藏域的目的在于收集或發(fā)送信息,以利于被處理表單的程序所使用。瀏覽者單擊發(fā)送按鈕發(fā)送表單的時候,隱藏域的信息也被一起發(fā)送到服務(wù)器。
- 有些時候我們要給用戶一信息,讓他在提交表單時提交上來以確定用戶身份,如sessionkey,等等.當(dāng)然這些東西也能用cookie實(shí)現(xiàn),但使用隱藏域就簡單的多了.而且不會有瀏覽器不支持,用戶禁用cookie的煩惱。
- 有些時候一個form里有多個提交按鈕,怎樣使程序能夠分清楚到底用戶是按那一個按鈕提交上來的呢?我們就可以寫一個隱藏域,然后在每一個按鈕處加上onclick="document.form.command.value="xx""然后我們接到數(shù)據(jù)后先檢查command的值就會知道用戶是按的那個按鈕提交上來的。
- 有時候一個網(wǎng)頁中有多個form,我們知道多個form是不能同時提交的,但有時這些form確實(shí)相互作用,我們就可以在form中添加隱藏域來使它們聯(lián)系起來。
- javascript不支持全局變量,但有時我們必須用全局變量,我們就可以把值先存在隱藏域里,它的值就不會丟失了。
- 還有個例子,比如按一個按鈕彈出四個小窗口,當(dāng)點(diǎn)擊其中的一個小窗口時其他三個自動關(guān)閉.可是IE不支持小窗口相互調(diào)用,所以只有在父窗口寫個隱藏域,當(dāng)小窗口看到那個隱藏域的值是close時就自己關(guān)掉