1.form表單有什么作用?有哪些常用的input 標簽,分別有什么作用?
HTML 表單用于接收不同類型的用戶輸入,用戶提交表單時向服務器傳輸數據,從而實現用戶與Web服務器的交互。
HTML表單是一個包含表單元素的區域, 表單使用<form> 標簽創建。表單能夠包含 input 元素,比如文本字段、復選框、單選框、提交按鈕等等。表單還可以包含menus、textarea、fieldset、legend 和 label 元素。
表單屬性
name:表單的名稱。
action:規定當提交表單時,向何處發送表單數據。action取值為:
第一,一個URL(絕對URL/相對URL),一般指向服務器端一個程序,程序接收到表單提交過來的數據(即表單元素值)作相應處理。
比如<form action="http://www.cnblogs.com/reg.ashx">,當用戶提交這個表單時,服務器將執行網址"http:/ /www.cnblogs.com/"上的名為“reg.ashx”的一般處理程序。
第二,使用mailto協議的URL地址,這樣會將表單內容以電子郵件的形式發送出去。這種情況比較少見的,因為它要求訪問者的計算機上安裝和正確設置好了郵件發送程序。
第三,空值,如果action為空或不寫,表示提交給當前頁面。
method:該屬性定義瀏覽器將表單中的數據提交給服務器處理程序的方式。關于method的取值,最常用的是get和post。
第一,使用get方式提交表單數據,Web瀏覽器會將各表單字段元素及其數據按照URL參數格式附在<form>標簽的action屬性所指定的URL地址后面發送給Web服務器;由于URL的長度限制,使用get方式傳送的數據量一般限制在1KB以下。
第二,使用post方式,瀏覽器會將表單數據作為HTTP請求體的一部分發送給服務器。一般來說,使用post方式傳送的數據量要比get方式傳遞的數據量大;根據HTML標準,如果處理表單的服務器程序不會改變服務器上存儲的數據,則應采用get方式(比如查詢),如果表單處理的結果會引起服務器上存儲的數據的變化,則應該采用post方式(比如增刪改操作)。
target:該屬性規定在何處顯示action屬性中指定的URL所返回的結果。取值有:
_blank(在新窗口中打開)
_self(在相同的框架中打開,默認值)
_parent(在父框架中打開)
_top(在整個窗口中打開)
framename(在指定的框架中打開)
title:設置網站訪問者的鼠標放在表單上的任意位置停留時,瀏覽器用小浮標顯示的文本。
enctype:規定在發送到服務器之前應該如何對表單數據進行編碼。
取值:
默認值為 "application/x-www-form-urlencoded",在發送到服務器之前,所有字符都會進行編碼(空格轉換為 "+" 加號,特殊符號轉換為 ASCII HEX 值);
“multipart/form-data”:不對字符編碼。在使用包含文件上傳控件的表單時,必須使用該值。
input標簽常用的有:
1)單行文本框<input type="text"/>
(input 的type 屬性的默認值就是"text")用例:<input type = “text” name=“名稱”/>
以下是單行文本框的主要屬性:
size:指定文本框的寬度,以字符個數為單位;在大多數瀏覽器中,文本框的缺省寬度是20個字符。
value:指定文本框的默認值,是在瀏覽器第一次顯示表單或者用戶單擊<input type="reset"/>按鈕之后在文本框中顯示的值。
maxlength:指定用戶輸入的最大字符長度。
readonly:只讀屬性,當設置readonly屬性后,文本框可以獲得焦點,但用戶不能改變文本框中的value。
disabled:禁用,當文本框被禁用時,不能獲得焦點,當然,用戶也不能改變文本框的值。并且在提交表單時,瀏覽器不會將該文本框的值發送給服務器。
2)密碼框<input type="password"/>
用例:<input type=“password” name=“名稱”/>
密碼字段中的字符會被掩碼(顯示為星號或原點)。
3)單選按鈕<input type="radio"/>
使用方式:使用name相同的一組單選按鈕,不同radio設定不同的value值,這樣通過取指定name的值就可以知道誰被選中了,不用單獨的判斷。單選按鈕的元素值由value屬性顯式設置,表單提交時,選中項的value和name被打包發送,不顯式設置value。
用例:
<input type=“radio” name=“gender” value=“male”/>
<input type=“radio” name=“gender” value=“female”/>
4)復選框<input type="checkbox"/>
使用復選按鈕組,即name相同的一組復選按鈕,復選按鈕表單元素的元素值由value屬性顯式設置,表達提交時,所有選中項的value和name被打包發送
不顯式設置value。復選框的checked屬性表示是否被默認選中,
<input type="checkbox" checked />或者
<input type="checkbox" checked="checked" />(推薦)
checked、readonly等這種一個可選值的屬性都可以省略屬性值。
用例:
<input type =“checkbox” name=“language” value=“java”/>
<input type =“checkbox” name=“language” value=“c”/>
<input type =“checkbox” name=“language” value=“JavaScript”/>
5)隱藏域<input type="hidden"/>
隱藏域通常用于向服務器提交不需要顯示給用戶的信息。
<input type=“hidden” name=“隱藏域”/>
6)提交按鈕<input type="submit"/>
當用戶單擊<inputt type="submit"/>的提交按鈕時,表單數據會提交給<form>標簽的action屬性所指定的服務器處理程序。中文IE下默認按鈕文本為“提交查詢”,可以設置value屬性修改按鈕的顯示文本?!?br> 用例:<input type="submit" value="提交"/>
7)重置按鈕<input type="reset"/>
當用戶單擊<input type="reset"/>按鈕時,表單中的值被重置為初始值。在用戶提交表單時,重置按鈕的name和value不會提交給服務器。
用例:<input type=“reset” value=“重置按鈕"/>
8)普通按鈕<input type="button"/>
普通按鈕通常用于單擊執行一段腳本代碼。
用例:<input type="button" value="普通按鈕"/>
8)圖像按鈕<input type="image"/>
圖像按鈕的src屬性指定圖像源文件,它沒有value屬性。圖像按鈕可代替<input type="submit"/>,而現在也可以通過css直接將<input type="submit"/>按鈕的外觀設置為一幅圖片。
用例:<input type="image" src="bg.jpg" />
9)文件上傳<input type="file"/>
使用file,則form的enctype必須設置為multipart/form-data,method屬性為POST。
用例:
<input name="uploadedFile" id="uploadedFile" type="file" size="60" accept="text/*"/>
10)其它標簽
多行文本<textarea></textarea>
多行文本<textarea>創建一個可輸入多行文本的文本框,<textarea>沒有value屬性,<textarea>文本</textarea>,cols=“50”、rows=“15”屬性表示行數和列數,不指定則瀏覽器采取默認顯示。
用例:
1 <textarea name=“textareaContent” rows=“ 10“ cols=“40” >
2 多行文本框的初始顯示內容
3 </textarea>
下拉選擇框
下拉選擇框允許你在一個有限的空間設置多種選項。
代碼格式:
<select name="..." size="..." multiple>
<option value="..." selected>...</option>
...
</select>
屬性解釋:
size屬性定義下拉選擇框的行數;
name屬性定義下拉選擇框的名稱;
multiple屬性表示可以多選,如果不設置本屬性,那么只能單選;
value屬性定義選擇項的值;
selected屬性表示默認已經選擇本選項。
<select name="mySelt" size="1" >
<option value="1" selected>baidu.com</option>
<option value="2">sina.com</option>
<option value="3">sohu.com</option>
</select>
<label></label>標簽
label 元素不會向用戶呈現任何特殊效果。不過,它為鼠標用戶改進了可用性。如果您在 label 元素內點擊文本,就會觸發此控件。就是說,當用戶選擇該標簽時,瀏覽器就會自動將焦點轉到和標簽相關的表單控件上。
<label> 標簽的 for 屬性應當與相關元素的 id 屬性相同。
<label></label>標簽對<input type="radio"/>和<input type="checkbox"/>這兩個標簽是非常有用的。
<input type="radio" name="sex" id="male" value="0" checked="checked" />
<label for="male">男</lable>
<input type="radio" name="sex" id="fmale" value="1" />
<label for="fmale">女</label>
<input type="radio" name="sex" id="secret" value="2" />
<label for="secret">保密</label>
2.post 和 get 方式的區別?
FORM中的get post方法區別Form中的get和post方法,在數據傳輸過程中分別對應了HTTP協議中的GET和POST方法。二者主要區別如下:
1)Get是用來從服務器上獲得數據,而Post是用來向服務器上傳遞數據。
2) Get將表單中數據的按照variable=value的形式,添加到action所指向的URL后面,并且兩者使用“?”連接,而各個變量之間使用 “&”連接;Post是將表單中的數據放在form的數據體中,按照變量和值相對應的方式,傳遞到action所指向URL。
3) Get是不安全的,因為在傳輸過程,數據被放在請求的URL中,而如今現有的很多服務器、代理服務器或者用戶代理都會將請求URL記錄到日志文件中,然后 放在某個地方,這樣就可能會有一些隱私的信息被第三方看到。另外,用戶也可以在瀏覽器上直接看到提交的數據,一些系統內部消息將會一同顯示在用戶面前。 Post的所有操作對用戶來說都是不可見的。
4)Get傳輸的數據量小,這主要是因為受URL長度限制;而Post可以傳輸大量的數據,所以在上傳文件只能使用Post(當然還有一個原因,將在后面的提到)。
5)Get限制Form表單的數據集的值必須為ASCII字符;而Post支持整個ISO10646字符集。
6)Get是Form的默認方法。
3.在input里,name 有什么作用?
name 定義input的名稱屬性,作為可與服務器交互數據的input元素的服務器端的標示。
注意和id屬性的區別:name屬性是和服務器通信時使用的名稱;而id屬性是瀏覽器端使用的名稱,該屬性主要是為了方便客戶端編程,而在css和JavaScript中使用的。
4.radio 如何 分組?
使用name相同的一組單選按鈕,不同radio設定不同的value值,這樣通過取指定name的值就可以知道誰被選中了,不用單獨的判斷。
5.placeholder 屬性有什么作用?
HTML5新增的另一個屬性,當input或者textarea設置了該屬性后,該值的內容將作為灰字提示顯示在文本框中,當文本框獲得焦點時,提示文字消失。
例:<inputid="t1"type="text"placeholder="請輸入文字"/>
6.type=hidden隱藏域有什么作用? 舉例說明
隱藏域在頁面中對于用戶是不可見的。它有兩個作用:
1)暫存信息,(用戶看不到),便于設計者隨時調用程序。
2)用于安全性校驗,例如通過設置hidden隱藏域,服務器可以驗證用戶權 限,避免偽造的假網站提交數據。