1. form表單有什么作用
<form name="myform" action="url" method="get/post"><form>
form表單用于把用戶輸入的數(shù)據(jù)提交給后臺(tái)服務(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="請(qǐng)輸入用戶名" maxlength=10 />
密碼輸入框
<input name="username" type="password" placeholder="請(qǐng)輸入密碼“”>復(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屬性用于對(duì)提交到服務(wù)器后的表單數(shù)據(jù)進(jìn)行標(biāo)識(shí)肮雨,或者在客戶端通過(guò)JS引用表單數(shù)據(jù)
注釋:只有設(shè)置了 name 屬性的表單元素才能在提交表單時(shí)傳遞它們的值遵堵。
2. GET和 POST方式的區(qū)別
HTTP定義了與服務(wù)器交互的不同方法,最基本的方法有4種怨规,分別是GET陌宿,POST,PUT椅亚,DELETE限番。URL全稱是資源描述符,我們可以這樣認(rèn)為:一個(gè)URL地址呀舔,它用于描述一個(gè)網(wǎng)絡(luò)上的數(shù)據(jù)弥虐,而HTTP中的GET,POST媚赖,PUT霜瘪,DELETE就對(duì)應(yīng)著對(duì)這個(gè)數(shù)據(jù)的查,改惧磺,增颖对,刪4個(gè)操作。到這里磨隘,大家應(yīng)該有個(gè)大概的了解了缤底,GET一般用于獲取/查詢數(shù)據(jù)顾患,而POST一般用于更新數(shù)據(jù)。
原理不同
- GET用于信息獲取个唧,而且應(yīng)該是安全的和冪等的
- 這里的安全是說(shuō)GET操作不會(huì)修改數(shù)據(jù)江解,只會(huì)查詢數(shù)據(jù),不會(huì)改變服務(wù)器資源狀態(tài)徙歼。
- 冪等意味著對(duì)同一URL的多個(gè)請(qǐng)求應(yīng)該返回同樣的結(jié)果犁河。這里我再解釋一下冪等這個(gè)概念:
冪等(idempotent、idempotence)是一個(gè)數(shù)學(xué)或計(jì)算機(jī)學(xué)概念魄梯,常見(jiàn)于抽象代數(shù)中桨螺。
冪等有以下幾種定義:
對(duì)于單目運(yùn)算,如果一個(gè)運(yùn)算對(duì)于在范圍內(nèi)的所有的一個(gè)數(shù)多次進(jìn)行該運(yùn)算所得的結(jié)果和進(jìn)行一次該運(yùn)算所得的結(jié)果是一樣的酿秸,那么我們就稱該運(yùn)算是冪等的灭翔。比如絕對(duì)值運(yùn)算就是一個(gè)例子,在實(shí)數(shù)集中允扇,有abs(a)=abs(abs(a))缠局。
對(duì)于雙目運(yùn)算,則要求當(dāng)參與運(yùn)算的兩個(gè)值是等值的情況下考润,如果滿足運(yùn)算結(jié)果與參與運(yùn)算的兩個(gè)值相等,則稱該運(yùn)算冪等读处,如求兩個(gè)數(shù)的最大值的函數(shù)糊治,有在在實(shí)數(shù)集中冪等,即max(x,x) = x罚舱。
- 運(yùn)用在這里井辜,冪等就是不管你操作多少次,結(jié)果都一樣管闷,比如你 get index粥脚,不過(guò)你 get 多少次,都是獲取 index包个。但是 post 就不冪等刷允,因?yàn)?post第一次是新建一個(gè)post,第二次是新建第二個(gè)碧囊。
- POST請(qǐng)求可能改變服務(wù)器上的資源
表象不同
- GET 請(qǐng)求的數(shù)據(jù)會(huì)拼接到action屬性所指的URL地址之后树灶,比如jirengu.com?username=tail&password=123456
POST則是把提交的數(shù)據(jù)打包到HTTP包的包體中糯而,也就是HTML HEADER內(nèi)一起傳送到action屬性所指的URL地址天通。 - GET與POST 提交的數(shù)據(jù)大小理論上沒(méi)有限制,但是由于GET是通過(guò)URL提交數(shù)據(jù)熄驼,那么GET提交數(shù)據(jù)的大小就由URL決定了像寒,理論上URL長(zhǎng)度也沒(méi)有限制烘豹,URL長(zhǎng)度取決于瀏覽器對(duì)其的限制。POST數(shù)據(jù)起限制作用的是服務(wù)器的處理能力诺祸。
其他
- GET后退按鈕/刷新無(wú)害吴叶,POST數(shù)據(jù)會(huì)被重新提交(瀏覽器應(yīng)該告知用- 戶數(shù)據(jù)會(huì)被重新提交)。
- GET書簽可收藏序臂,POST為書簽不可收藏蚌卤。
- GET能被緩存,POST不能緩存 奥秆。
- GET歷史參數(shù)保留在瀏覽器歷史中逊彭。POST參數(shù)不會(huì)保存在瀏覽器歷史中。
- GET編碼類型application/x-www-form-url构订,POST編碼類型application/x-www-form-urlencoded 或 multipart/form-data侮叮。為二進(jìn)制數(shù)據(jù)使用多重編碼。
- GET只允許 ASCII 字符悼瘾。POST沒(méi)有限制囊榜。也允許二進(jìn)制數(shù)據(jù)
3. radio 如何 分組?
radio通過(guò)name值來(lái)分組,name相同的為一組亥宿。
4. placeholder 屬性有什么作用?
placeholder 是HTML5的新屬性
placeholder 屬性提供可描述輸入字段預(yù)期值的提示信息卸勺。
該提示會(huì)在輸入字段為空時(shí)顯示,并會(huì)在字段獲得焦點(diǎn)時(shí)消失烫扼。
注釋:placeholder 屬性適用于以下的 <input> 類型:text, password曙求、 search, url, telephone,以及 email
5. type=hidden隱藏域有什么作用?
隱藏域具體寫法:
<input type="hidden" name="field_name" value="value">
hidden隱藏域無(wú)外乎下面六點(diǎn)作用:
- 隱藏域在頁(yè)面中對(duì)于用戶是不可見(jiàn)的,在表單中插入隱藏域的目的在于收集或發(fā)送信息映企,以利于被處理表單的程序所使用悟狱。瀏覽者單擊發(fā)送按鈕發(fā)送表單的時(shí)候,隱藏域的信息也被一起發(fā)送到服務(wù)器堰氓。
- 有些時(shí)候我們要給用戶一信息挤渐,讓他在提交表單時(shí)提交上來(lái)以確定用戶身份,如sessionkey双絮,等等.當(dāng)然這些東西也能用cookie實(shí)現(xiàn)浴麻,但使用隱藏域就簡(jiǎn)單的多了.而且不會(huì)有瀏覽器不支持,用戶禁用cookie的煩惱掷邦。
- 有些時(shí)候一個(gè)form里有多個(gè)提交按鈕白胀,怎樣使程序能夠分清楚到底用戶是按那一個(gè)按鈕提交上來(lái)的呢?我們就可以寫一個(gè)隱藏域抚岗,然后在每一個(gè)按鈕處加上onclick="document.form.command.value="xx""然后我們接到數(shù)據(jù)后先檢查command的值就會(huì)知道用戶是按的那個(gè)按鈕提交上來(lái)的或杠。
- 有時(shí)候一個(gè)網(wǎng)頁(yè)中有多個(gè)form,我們知道多個(gè)form是不能同時(shí)提交的宣蔚,但有時(shí)這些form確實(shí)相互作用向抢,我們就可以在form中添加隱藏域來(lái)使它們聯(lián)系起來(lái)认境。
- 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)掉