網頁程式設計 學習紀錄(七) 表單與後端處理
包含以下六個部分:
- 建立表單- <form>、<input>元素
- HTML4.01既有的輸入類型
- HTML5新增的輸入類型
- 標籤文字 <label>元素
- 將表單欄位框起來 <fieldset>、<legend>元素
- 其他新增的表單元素
1.建立表單- <form>、<input>元素
表單可以提供輸入介面、讓使用者輸入資料,再將資料傳回Web伺服器做進一步處理。
(1)<form元素>
<form>元素用來在HTML文件中插入表單,屬性如下:
屬性 | 說明 |
accept-charset |
指定表單資料的字元編碼方式 |
action="uri" | 指定表單處理程式的相對或絕對位址 |
accept="..." | 指定MIME類型(網際網路媒體類型) |
enctype="..." | 指定將表單傳回Web的編碼方式 |
method="{get,post}" | 指定表單資料傳送給表單處理程式的方式(預設為get) |
target="..." | 指定用來顯示表單處理程式之目標框架 |
name="n" | 指定表單的名稱(限定英文且唯一) |
autocomplete="{on,off,default}" | 指定是否啟用自動完成功能(開啟,關閉,繼承form) |
novalidate | 指定再提交表單時不要進行驗證 |
(2)<input元素>
<input>元素用來在表單中插入樹入欄位或按鈕其屬性如下:
屬性 | 說明 |
align="{left,center,right}" | 指定圖片提交按鈕的對齊方式 |
accept="..." | 指定提交檔案時的MIME類型 |
checked | 將選擇按鈕或核取方塊預設為已選取按鈕 |
disable | 取消表單欄位,使表單資料無法被接受或提交 |
maxlength="n" | 指定單行文字方塊、密碼欄位、搜尋欄位等表單欄位的最多字元數 |
name="..." | 指定表單欄位之名稱(限定英文且唯一) |
notab | 不允許使用者使用[Tab]鍵的方式移動至表單欄位 |
readonly | 不允許使用者變更表單欄位的資料 |
size="n" | 指定單行文字方塊、密碼欄位、搜尋欄位等表單欄位的寬度(n不是指可輸入字元數,而是指在畫面上可以看到的字元數) |
scr="uri" | 圖片提交按鈕的位址(當type="image"時) |
type="state" | 指表單欄位的輸入類型 |
usemap | 指定瀏覽器端影像地圖所在的檔案位址及名稱 |
value="n" | 指定表單欄位的初始值 |
form="formid" | 指定表單欄位隸屬於ID為formid的表單 |
min="n"、max="n"、step=:"n" | 指定數字輸入類型或日期輸入類型的最小值、最大值、間隔值 |
required | 指定使用者必須在表單欄位中輸入資料 |
multiple | 允許使用者提交多個檔案,若允許使用者輸入以逗號隔開的多個墊子郵件地址 |
pattern="..." | 針對表單欄位指定進一步的輸入格式(格式化輸出) |
autocomplete="{on,off,default}" | 指定是否啟用自動完成功能(開啟,關閉,繼承form) |
autofocus | 指定載入網頁的當下,令焦點自動移至表單欄位 |
placeholder="..." | 指定在表單欄位內顯示提示文字,待使用者將焦點移至表單欄位,該題是文字會自動消失 |
list | list屬性可以和HTML5新增的<datalist>元素搭配,讓使用者從預先輸入的清單中選擇資料或自行輸入其他資料 |
(3)<type="state"屬性>
HTML4.01既有的TYPE屬性值 | 輸入類型 | HTML4.01既有的TYPE屬性值 | 輸入類型 |
type="text" | 單行文字方塊 | type="reset" | 重新輸入按鈕 |
type="password" | 密碼欄位 | type="file" | 上傳檔案 |
type="radio" | 選擇鈕 | type="image" | 圖片提交按鈕 |
type="checkbox" | 核取方塊 | type="hidden" | 隱藏欄位 |
type="submit" | 提交按鈕 | type="botton" | 一般按鈕 |
HTML5 新增的TYPE屬性值 | 輸入類型 | HTML5 新增的TYPE屬性值 | 輸入類型 |
type="email" | 電子郵件地址 | type="date" | 日期 |
type="url" | 網址 | type="time" | 時間 |
type="search" | 搜尋欄位 | type="datetime" | UTC世界標轉時間 |
type="tel" | 電話號碼 | type="month" | 月份 |
type="number" | 數字 | type="week" | 一年的第幾週 |
type="ranger" | 指定範圍內的數字 | type="datetime-local" | 本地日期時間 |
type="color" | 色彩 |
2.HTML4.01既有的輸入類型
(1)按鈕、單行文字方塊、選擇鈕、核取方塊
以下為範例程式碼:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>表單</title> </head> <body> <form> <!-- 單行文字方塊 --> 姓 名:<input type="text" name="Username" size="40"><br> E-Mail:<input type="text" name="UserMail" size="40" value="Username@mailserver"><br> <!-- 選擇鈕 --> 年 齡: <input type="radio" name="Userage" value="age1">未滿20歲 <input type="radio" name="Userage" value="age2" checked>20~29 <input type="radio" name="Userage" value="age3">30~39 <input type="radio" name="Userage" value="age4">40~49 <input type="radio" name="Userage" value="age5">50歲以上<br> <!-- 核取方塊 --> 常使用的電子產品: <input type="checkbox" name="Useproduct" value="computer" checked>電腦 <input type="checkbox" name="Useproduct" value="cellphone">手機 <input type="checkbox" name="Useproduct" value="tablet"> 平板電腦<br> <!-- 提交與重新輸入按鈕 --> <input type="submit" value="提交"> <input type="reset" value="重新輸入"> </form> </body> </html>
(2)多行文字方塊、下拉式選單
多行文字方塊可以使用<textarea>元素
下拉式選單則使用<select>搭配<option>元素
以下為範例程式碼:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>表單</title> </head> <body> <form> <!-- 單行文字方塊 --> 姓 名:<input type="text" name="Username" size="40"><br> E-Mail:<input type="text" name="UserMail" size="40" value="Username@mailserver"><br> <!-- 選擇鈕 --> 年 齡: <input type="radio" name="Userage" value="age1">未滿20歲 <input type="radio" name="Userage" value="age2" checked>20~29 <input type="radio" name="Userage" value="age3">30~39 <input type="radio" name="Userage" value="age4">40~49 <input type="radio" name="Userage" value="age5">50歲以上<br> <!-- 核取方塊 --> 使用的電子產品: <input type="checkbox" name="Useproduct" value="computer" checked>電腦 <input type="checkbox" name="Useproduct" value="cellphone">手機 <input type="checkbox" name="Useproduct" value="tablet"> 平板電腦<br> <!-- 多行文字方塊 --> 使用電子產品時遇到的問題:<br> <textarea name="UserTrouble" cols="45" rows="4" placeholder="請輸入訊息"></textarea><br> <!-- 下拉式選單 --> 玩過的遊戲?(可複選):<br> <select name="Usergame" size="4" multiple> <option value="救世者之樹">救世者之樹 <option value="少女前線" selected="">少女前線 <option value="碧蘭航線">碧蘭航線 <option value="劍靈">劍靈 </select><br> <!-- 提交與重新輸入按鈕 --> <input type="submit" value="提交"> <input type="reset" value="重新輸入"> </form> </body> </html>
3.HTML5新增的輸入類型
有E-Mail類型、Number類型、range類型、
color類型、tel類型、日期時間類型
以下為範例程式碼:
<!DOCTYPE html> <html> <head> <title>表單2</title> </head> <body> <form> <!-- E-mail --> <input type="email"><br> <!--URL --> <input type="url"><br> <!--Search --> <input type="search"><br> <!--Number --> <input type="number" min="0"max="10" step="2"> <!--Range --> <input type="number" min="0"max="12" step="2"> <!--Color --> <input type="Color"><br> <input type="submit" value="提交"> </form> </body> </html>
4.標籤文字 <label>元素
許多欄位會有預設的標籤文字,例如用來將<label>與<input>的id做綁定
此時可以使用<label>元素來指定,屬性如下:
for="fieldid":指定標籤文字是與ID為fieldid的表單欄位產生關聯
form,="formid":指定<label>元素隸屬於ID為formid的表單
範例程式碼如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>表單3</title> </head> <body> <form> <p><label>姓名:<input type="text" name="username"></label></p> <p><label>年齡:<input type="number" name="userage" min="1"></label></p> <input type="submit"> <input type="reset"> </form> </body> </html>
5.將表單欄位框起來 <fieldset>、<legend>元素
(1)<fieldset>元素
<fieldset>元素用來將表單欄位框起來,其屬性如下:
屬性 | 說明 |
disable | 取消<fieldset>所框起來之表單欄位,使之無法存取 |
name="..." | 指定<fieldset>元素的名稱 |
form="formid" | 指定<fieldset>元素隸屬於ID為formid的表單 |
(2)<legend>元素
<legend>元素用來在方框上加上說明文字,其屬性如下:
align="{left,centet,right}":指定說明文字的位置
範例程式碼如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>表單</title> </head> <body> <form> <fieldset> <legend>個人資料</legend> <!-- 單行文字方塊 --> 姓 名:<input type="text" name="Username" size="40"><br> E-Mail:<input type="text" name="UserMail" size="40" value="Username@mailserver"><br> <!-- 選擇鈕 --> 年 齡: <input type="radio" name="Userage" value="age1">未滿20歲 <input type="radio" name="Userage" value="age2" checked>20~29 <input type="radio" name="Userage" value="age3">30~39 <input type="radio" name="Userage" value="age4">40~49 <input type="radio" name="Userage" value="age5">50歲以上<br> </fieldset> <fieldset> <legend>產品調查</legend> <!-- 核取方塊 --> 使用的電子產品: <input type="checkbox" name="Useproduct" value="computer" checked>電腦 <input type="checkbox" name="Useproduct" value="cellphone">手機 <input type="checkbox" name="Useproduct" value="tablet"> 平板電腦<br> <!-- 多行文字方塊 --> 使用電子產品時遇到的問題:<br> <textarea name="UserTrouble" cols="45" rows="4" placeholder="請輸入訊息"></textarea><br> <!-- 下拉式選單 --> 玩過的遊戲?(可複選):<br> <select name="Usergame" size="4" multiple> <option value="救世者之樹">救世者之樹 <option value="少女前線" selected="">少女前線 <option value="碧蘭航線">碧蘭航線 <option value="劍靈">劍靈 </select><br> <!-- 提交與重新輸入按鈕 --> <input type="submit" value="提交"> <input type="reset" value="重新輸入"> </fieldset> </form> </body> </html>
6.其他新增的表單元素
HTML5除了上述表單元素,還新增了<output>、<progress>、<meter>、<keygen>、<optgroup>等表單元素
(1)<output>元素
<output>元素用來顯示計算結果
(2)<progress>元素
<progress>元素用來顯示進度列,代表某個工作的完成進度
(3)<meter>元素
<meter>元素用來顯示某個範圍內的比例或量標
(4)<keygen>元素
<keygen>元素會根據RSA演算法產生一對金鑰
(5)<outgroup>元素
<outgroup>元素可以替一群<option>元素加上標籤,且沒有結束標籤。
留言列表