1. form表單有什么作用?
- HTML表單用于搜集不同類型的用戶輸入。(主要負(fù)責(zé)采集瀏覽者的相關(guān)數(shù)據(jù))
- 例如常見的注冊表、調(diào)查表和留言表等指么。
<form action="url" method="get|post" enctype="mime"></form>
其中,action指定處理提交表單的格式榴鼎,它可以是一個(gè)URL地址或一個(gè)電子郵件地址伯诬;method指明提交表單的HTTP方法;enctype指明用來把表單提交給服務(wù)器時(shí)的互聯(lián)網(wǎng)媒體形式巫财。
- 表單是一個(gè)能夠包含表單元素的區(qū)域盗似,通過添加不同的表單元素,將顯示不同的效果平项。
2. 有哪些常見的input標(biāo)簽桥言,分別有什么作用?
瀏覽網(wǎng)頁時(shí)經(jīng)常會(huì)看到單行文本輸入框葵礼、多行文本框、單選按鈕并鸵、復(fù)選框鸳粉、提交按鈕、重置按鈕等园担。
<input type="控件類型"/>
1. 單行文本輸入框text
- 文本框是一種讓訪問者自行輸入內(nèi)容的表單對象届谈,通常被用來填寫單個(gè)字或簡短回答,如用戶姓名和地址:
<input type="text" name="..." size="...' maxlength="..." value="...">
type="text"定義單行文本輸入框弯汰;name屬性定義文本框的名稱艰山,要保證數(shù)據(jù)的準(zhǔn)確采集,必須定義一個(gè)獨(dú)一無二的名稱咏闪;size屬性定義文本框的寬度曙搬,單位是單個(gè)字符寬度;value屬性定義文本框的初始值鸽嫂。
2. 多行文本框標(biāo)記<textarea>
<textarea name="..." cols="..." rows="..." wrap="..."></textarea>
其中纵装,cols屬性定義多行文本框的寬度,單位是單個(gè)字符寬度据某;rows屬性定義多行文本框的高度橡娄,單位是單個(gè)字符高度;wrap屬性定義輸入內(nèi)容大于文本域時(shí)顯示的方式癣籽。
3. 密碼域password
- 主要用于輸入一些保密信息
<input type="password" name="..." size="..." maxlength="...">
4. 單選按鈕radio
- 單選按鈕主要是讓網(wǎng)頁瀏覽者在一組選項(xiàng)里只能選其一
<input type="radio" name="..." value="...">
單選按鈕都是以組為單位挽唉,同一組中的單選項(xiàng)都必須用同一個(gè)名稱name滤祖;而同一組中的域值value必須不同!
5. 復(fù)選框CheckBox
- 可以同時(shí)選擇多個(gè)選項(xiàng)瓶籽,每個(gè)復(fù)選框都是一個(gè)獨(dú)立的元素匠童,都必須有唯一的名稱
<input type="checkbox" name="..." value="...">
在同一組中的復(fù)選框都必須用同一個(gè)名稱name;value定義復(fù)選框的值棘劣。
6.普通按鈕button
<input type="button" name="..." />
常配合JavaScript使用俏让。
7.提交按鈕submit
提交按鈕是表單中的核心控件,用戶完成信息的輸入后茬暇,一般都需要單擊提交按鈕才能完成表單數(shù)據(jù)的提交首昔。
<input="submit" name="..." value="...">
改變value屬性即可改變提交按鈕上的默認(rèn)文本。
8. 重置按鈕reset
當(dāng)輸入信息有誤時(shí)糙俗,電機(jī)重置按鈕就可以取消已輸入的所有表單信息勒奇。
<input="reset" name="..." value="...">
9. 上傳文件file
<input type="file" name="..." accept="...">
10. 下拉菜單select
<select>
<option value="...">***</option>
<option value="...">***</option>
</select>
3. post 和 get 方式的區(qū)別
form元素的method屬性用來向后臺(tái)發(fā)生請求,提交數(shù)據(jù)巧骚;
- 使用get赊颠,點(diǎn)擊提交后,會(huì)把所有的用戶信息拼接在一起形成一個(gè)新的URL劈彪,向地址發(fā)生請求竣蹦,出現(xiàn)在瀏覽器的歷史記錄中,這樣別人就會(huì)看到你的所有信息沧奴,包括密碼痘括,所以這種方法不安全,而且當(dāng)用戶信息十分多的時(shí)候滔吠,形成的新URL就會(huì)很長纲菌;
- 使用post,點(diǎn)擊提交后疮绷,URL不變翰舌,form數(shù)據(jù)集被包裝在請求的body中被直接發(fā)送,數(shù)據(jù)提交給后臺(tái)冬骚,所以這種方式比較安全椅贱。
- post和get分別在什么情況下使用?
get是用來從服務(wù)器上獲得數(shù)據(jù)只冻,比如查詢一個(gè)信息時(shí)夜涕,向后臺(tái)要數(shù)據(jù)。
而post是用來向服務(wù)器上傳遞數(shù)據(jù)属愤。對安全性要求較高時(shí)用post女器。
4. placeholder屬性有什么作用?
placaholder是HTML5的新特性住诸,它是文本框input里面的一個(gè)屬性驾胆,placeholder能夠讓文本框提示顯示信息涣澡,一旦在文本框里輸入了什么信息,提示信息就會(huì)隱藏丧诺。
<input type="text" name="..." placeholder="提示的信息"/>
它不需要用到JavaScript來實(shí)現(xiàn)入桂,而且還可以用CSS對其進(jìn)行美化~
5. type=hidden隱藏域有什么作用?舉例說明
隱藏域的作用是幫助表單收集和發(fā)送信息驳阎,便于后端處理數(shù)據(jù)抗愁。用戶點(diǎn)擊提交數(shù)據(jù)的時(shí)候,隱藏域的信息也被一起發(fā)送到了后端呵晚。
- 有時(shí)候一個(gè)表單里有多個(gè)提交按鈕蜘腌,后端怎么知道用戶是點(diǎn)擊哪個(gè)按鈕提交過來的呢?這時(shí)候我們只要加隱藏域饵隙,對每一個(gè)按鈕起個(gè)名字(value值)撮珠,后端接收到數(shù)據(jù)后,檢查value值金矛,就能知道是哪個(gè)按鈕提交的了芯急。
- 有時(shí)候一個(gè)網(wǎng)頁中有多個(gè)form,我們知道多個(gè)form是不能同時(shí)提交的驶俊,但有時(shí)這些form確實(shí)相互作用娶耍,我們就可以在form中添加隱藏域來使它們聯(lián)系起來。
- 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)掉肩榕。