form表單有什么作用?有哪些常用的input 標(biāo)簽,分別有什么作用?
實(shí)現(xiàn)頁面與web服務(wù)器傳輸數(shù)據(jù)的作用。
常見的form表單有 多選框(checkbox),按鈕(button),單選按鈕(radio),多行文本(textarea),密碼框(password),提交按鈕(submit),下拉菜單(select)等等。
post 和 get 方式的區(qū)別?
GET一般用于獲取/查詢資源信息,而POST一般用于更新資源信息。
GET請求的數(shù)據(jù)會(huì)附在URL之后(就是把數(shù)據(jù)放置在HTTP協(xié)議頭中),以?分割URL和傳輸數(shù)據(jù),參數(shù)之間以&相連,如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。POST把提交的數(shù)據(jù)則放置在是HTTP包的包體中。
GET方式提交的數(shù)據(jù)最多只能是1024字節(jié),理論上POST沒有限制,可傳較大量的數(shù)據(jù),IIS4中最大為80KB,IIS5中為100KB
POST的安全性要比GET的安全性高。舉例:通過GET提交數(shù)據(jù),用戶名和密碼將明文出現(xiàn)在URL上,因?yàn)?1)登錄頁面有可能被瀏覽器緩存,(2)其他人查看瀏覽器的歷史紀(jì)錄,那么別人就可以拿到你的賬號和密碼了,除此之外,使用GET提交數(shù)據(jù)還可能會(huì)造成Cross-site request forgery攻擊。
在input里,name 有什么作用?
name 屬性規(guī)定 input 元素的名稱。
name 屬性用于對提交到服務(wù)器后的表單數(shù)據(jù)進(jìn)行標(biāo)識,或者在客戶端通過 JavaScript 引用表單數(shù)據(jù)。
** 注釋 **:只有設(shè)置了 name 屬性的表單元素才能在提交表單時(shí)傳遞它們的值。
radio 如何 分組?
取決于name的值是否相同。
placeholder 屬性有什么作用?
placeholder 屬性提供可描述輸入字段預(yù)期值的提示信息(hint)。
該提示會(huì)在輸入字段為空時(shí)顯示,并會(huì)在字段獲得焦點(diǎn)時(shí)消失。
type=hidden隱藏域有什么作用? 舉例說明
隱藏域在頁面中對于用戶是不可見的,在表單中插入隱藏域的目的在于收集或發(fā)送信息,以利于被處理表單的程序所使用。瀏覽者單擊發(fā)送按鈕發(fā)送表單的時(shí)候,隱藏域的信息也被一起發(fā)送到服務(wù)器。
有些時(shí)候我們要給用戶一信息,讓他在提交表單時(shí)提交上來以確定用戶身份,如sessionkey,等等.當(dāng)然這些東西也能用cookie實(shí)現(xiàn),但使用隱藏域就簡單的多了.而且不會(huì)有瀏覽器不支持,用戶禁用cookie的煩惱。
有些時(shí)候一個(gè)form里有多個(gè)提交按鈕,怎樣使程序能夠分清楚到底用戶是按那一個(gè)按鈕提交上來的呢?我們就可以寫一個(gè)隱藏域,然后在每一個(gè)按鈕處加上 onclick="document.form.command.value="xx""然后我們接到數(shù)據(jù)后先檢查command的值就會(huì)知道用戶是按的那個(gè)按鈕提交上來的。
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 type ="file" name ="myfile" accept="image/png"></form>
accept 屬性只能與 <input type="file"> 配合使用。它規(guī)定能夠通過文件上傳進(jìn)行提交的文件類型。
required 屬性規(guī)定必需在提交之前填寫輸入字段。
如果使用該屬性,則字段是必填(或必選)的。