1.form表單有什么作用?有哪些常用的input 標簽,分別有什么作用?
form表單的作用就是,搜集用戶輸入的數據 ,比如注冊登陸填寫相關信息,提交到服務器,提交反饋,實現用戶與服務器的交互.
標簽:
text:文本框,定義一行20個字符寬的文本。可以使用size屬性調整寬度
password:密碼輸入框,密碼類型與文本字段基本相同,但輸入到密碼字段的字符被屏蔽
radio:單選按鈕,可提供多個選項,但只能選擇其中一個
checkbox:復選框按鈕,有多個選項,可選擇多個值
submit:提交按鈕
button:如果要運行一個script一個按鈕被點擊時,該button輸入的類型可以用來創建可與各種動作相關聯的按鈕
hidden:該屬性類型通常與value屬性同時使用,不過將暫時遮蓋,用戶不可直接看到或改變,以預先定義的值添加到每個表單提交
reset:重置按鈕,返回所有表單字段的默認狀態
file:允許表單用戶上傳和提交文件
2.post 和 get 方式的區別?
-- | get | post |
---|---|---|
歷史 | 參數保留在瀏覽器歷史記錄中,因為它們是URL的一部分 | 參數不保存在瀏覽器歷史記錄中。 |
書簽 | 可以加書簽。 | 無法加入書簽。 |
BACK按鈕/重新提交行為 | GET請求被重新執行,但如果HTML存儲在瀏覽器緩存中,則可能不會重新提交到服務器。 | 瀏覽器通常會提醒用戶 |
編碼類型(enctype屬性) | application / x-www-form-urlencoded | multipart / form-data或application / x-www-form-urlencoded對二進制數據使用multipart編碼。 |
參數 | 可以發送但是參數數據被限制到我們可以填入請求行(URL)。最安全的使用小于2K的參數,一些服務器處理高達64K | 可以向服務器發送參數,包括上傳文件。 |
表單數據類型的限制 | 是,僅允許ASCII字符。 | 無限制。也允許二進制數據。 |
安全 | GET比POST更不安全,因為發送的數據是URL的一部分。因此它以純文本保存在瀏覽器歷史記錄和服務器日志中。 | POST比GET安全,因為這些參數并不存儲在瀏覽器歷史記錄或在一個小更安全的 |
表單數據長度限制 | 是,因為表單數據位于網址中,網址長度受到限制安全網址長度限制通常為2048個字符,但因瀏覽器和網絡服務器而異。 | 無限制 |
可用性 | 發送密碼或其他敏感信息時不應使用GET方法。 | 發送密碼或其他敏感信息時使用的POST方法。 |
能見度 | GET方法對所有人都可見(它將顯示在瀏覽器的地址欄中),并且對要發送的信息量有限制。 | POST方法變量不顯示在URL中。 |
緩存 | 可以緩存 | 不可緩存 |
3.在input里,name 有什么作用?
ame 屬性用于對提交到服務器后的表單數據進行標識,或者在客戶端通過 JavaScript 引用表單數據。
ps:只有設置了 name 屬性的表單元素才能在提交表單時傳遞它們的值。
4.radio 如何 分組?
設置 name 屬性,相同的為一組,使用時其中只有一個會被選中
5.placeholder 屬性有什么作用?
占位符屬性指定描述輸入字段(例如,樣本值或預期格式的簡短描述)的期望值的短提示。
在用戶輸入值之前,輸入字段中將顯示短提示。
注意:占位符屬性適用于以下輸入類型:文本,搜索,網址,電話,電子郵件和密碼
6.type=hidden隱藏域有什么作用? 舉例說明
1.隱藏域在頁面中對于用戶是不可見的,在表單中插入隱藏域的目的在于收集或發送信息,以利于被處理表單的程序所使用。瀏覽者單擊發送按鈕發送表單的時候,隱藏域的信息也被一起發送到服務器。
2.有些時候我們要給用戶一信息,讓他在提交表單時提交上來以確定用戶身份,如sessionkey,等等.當然這些東西也能用cookie實現,但使用隱藏域就簡單的多了.而且不會有瀏覽器不支持,用戶禁用cookie的煩惱。
3.有些時候一個form里有多個提交按鈕,怎樣使程序能夠分清楚到底用戶是按那一個按鈕提交上來的呢?我們就可以寫一個隱藏域,然后在每一個按鈕處加上onclick="document.form.command.value="xx""然后我們接到數據后先檢查command的值就會知道用戶是按的那個按鈕提交上來的。
4.有時候一個網頁中有多個form,我們知道多個form是不能同時提交的,但有時這些form確實相互作用,我們就可以在form中添加隱藏域來使它們聯系起來。
5.javascript不支持全局變量,但有時我們必須用全局變量,我們就可以把值先存在隱藏域里,它的值就不會丟失了。
6.還有個例子,比如按一個按鈕彈出四個小窗口,當點擊其中的一個小窗口時其他三個自動關閉.可是IE不支持小窗口相互調用,所以只有在父窗口寫個隱藏域,當小窗口看到那個隱藏域的值是close時就自己關掉。