表單中readonly和disabled屬性的區(qū)別
- 設(shè)置了readonly的input[text]在提交表單的時候還是會提交input上聲明的數(shù)據(jù)。
- 設(shè)置了disabled的則不會提交input上聲明的數(shù)據(jù)。
表單提交文件的正確方式
添加input[type=file]的input標(biāo)簽
設(shè)置表單的method為post
設(shè)置表單的enctype為multipart/form-data
如何無刷新提交表單
在頁面設(shè)置一個iframe,設(shè)置好它的name屬性值,用css控制他是'消失'的。
設(shè)置form的target屬性為iframe的name屬性即可。
默認(rèn)情況下,form中的button按鈕不聲明type屬性,則一律視為submit。
post 和 get 方式的區(qū)別?
get常用于向后臺索求數(shù)據(jù)。提交時URL發(fā)生變化。安全性較差。
post常用于向后臺傳數(shù)據(jù)。提交時URL不發(fā)生變化。安全性較好。
- GET后退按鈕/刷新無害,POST數(shù)據(jù)會被重新提交(瀏覽器應(yīng)該告知用戶數(shù)據(jù)會被重新提交)。
- GET書簽可收藏,POST為書簽不可收藏。
- GET能被緩存,POST不能緩存 。
- GET編碼類型application/x-www-form-url,POST編碼類型application/x-www-form-urlencoded 或 multipart/form-data。為二進制數(shù)據(jù)使用多重編碼。
- GET歷史參數(shù)保留在瀏覽器歷史中。POST參數(shù)不會保存在瀏覽器歷史中。
- GET對數(shù)據(jù)長度有限制,當(dāng)發(fā)送數(shù)據(jù)時,GET 方法向 URL 添加數(shù)據(jù);URL 的長度是受限制的(URL 的最大長度是 2048 個字符)。POST無限制。
- GET只允許 ASCII 字符。POST沒有限制。也允許二進制數(shù)據(jù)。
- __與 POST 相比,GET 的安全性較差,因為所發(fā)送的數(shù)據(jù)是 URL 的一部分。在發(fā)送密碼或其他敏感信息時絕不要使用 GET !POST 比 GET 更安全,因為參數(shù)不會被保存在瀏覽器歷史或 web 服務(wù)器日志中。GET的數(shù)據(jù)在 URL 中對所有人都是可見的。POST的數(shù)據(jù)不會顯示在 URL 中。
type=hidden隱藏域有什么作用? 舉例說明
作用:隱藏域在頁面中對于用戶是不可見的,在表單中插入隱藏域的目的在于收集或發(fā)送信息,以利于被處理表單的程序所使用。瀏覽者單擊發(fā)送按鈕發(fā)送表單的時候,隱藏域的信息也被一起發(fā)送到服務(wù)器。
舉例:
- 有些時候我們要給用戶一信息,讓他在提交表單時提交上來以確定用戶身份,如sessionkey等。當(dāng)然這些東西也能用cookie實現(xiàn),但使用隱藏域就簡單的多了.而且不會有瀏覽器不支持,用戶禁用cookie的煩惱。
- 有些時候一個form里有多個提交按鈕,怎樣使程序能夠分清楚到底用戶是按那一個按鈕提交上來的呢?我們就可以寫一個隱藏域,然后在每一個按鈕處加上onclick=”document.form.command.value=”xx””然后我們接到數(shù)據(jù)后先檢查command的值就會知道用戶是按的那個按鈕提交上來的。
- 當(dāng)一個網(wǎng)頁中有多個form,多個form是不能同時提交的,但有時這些form確實相互作用,可以在form中添加隱藏域來使它們聯(lián)系起來。
JavaScript不支持全局變量,但有時我們必須用全局變量,我們就可以把值先存在隱藏域里,它的值就不會丟失了。 - 還有個例子,比如按一個按鈕彈出四個小窗口,當(dāng)點擊其中的一個小窗口時其他三個自動關(guān)閉.可是IE不支持小窗口相互調(diào)用,所以只有在父窗口寫個隱藏域,當(dāng)小窗口看到那個隱藏域的值是close時就自己關(guān)掉。