HTML表單form與表單驗證

MDN表單指南(詳細參考)

<input>是內聯塊狀元素,既可以和其他元素放在同一行(內聯),也可以設置寬高等屬性(塊狀)
<form>標籤用於爲用戶輸入創建HTML表單

<form  method="post"(規定如何發送表單數據      常用值:get|post)
 action="result.html">(表示向何處發送表單數據)
 
</form>

經驗:在實際網頁開發中通常採用post方式提交表單數據

1.label

<label>標籤爲 input 元素定義標註(標記)。

(1)for屬性

“for” 屬性可把 label 綁定到另外一個元素,所以把 “for” 屬性的值設置爲相關元素的 id 屬性的值

<form>
  <label for="male">Male</label>								//與下一行的表單元素綁定
  <input type="radio" name="sex" id="male" />
  <br />
  <label for="female">Female</label>
  <input type="radio" name="sex" id="female" />
</form>

1.增強鼠標的可用性
2.自動將焦點轉移到與該標註相關的表單元素上

如果不使用label,則用戶對某內容進行勾選時,必須要用鼠標點到勾選框內才能進行選擇,有時會比較麻煩,對用戶不友好;使用label則可以讓整條內容連同前面的勾選框一起作爲一個大的勾選框,用戶只需要點擊文字,就可以勾選內容,方便用戶使用。

(2)form

規定 label 字段所屬的一個或多個表單。
具體看:https://www.w3school.com.cn/tags/att_label_form.asp

2.input
<input  type=" " name="fname" value="初始值"/>
屬性 說明
type 指定元素類型:text(默認)、 password、checkbox(複選框)、radio(單選框)、submit、reset(重置按鈕)、file、hidden、image、button
name 元素名稱
value 初始值,type 爲 radio時必須指定一個值
size 指定表單元素的初始寬度。當 type 爲 text 或 password時,表單元素的大小以字符爲單位。對於其他類型,寬度以像素爲單位
maxlength 輸入最大字符
checked 元素是否被選中

選擇的時候注意語義信息
文件域

<form action="" method="post" enctype="multipart/form-data"(表單編碼屬性)>
  <p><input type="file"(文件域) name="files" />
  <input type="submit" name="upload" value="上傳" /></p>
</form>

郵箱:會自動驗證email格式是否正確

<p>郵箱:<input type="email"(郵箱)  name="email"/></p>
<input type="submit"/>

網址:自動驗證

<p>請輸入你的網址:<input type="url"(網址)  name="userUrl"/></p>
<input type="submit"/>

數字

<p>請輸入數字:<input type="number"(數字)  name="num" min="0"(允許的最小值) max="100"(允許的最大值) step(合法的數字間隔)="10"/></p>
<input type="submit"/>

滑塊

<p>請輸入數字:<input type="range"(滑塊)  name="range1" min="0"(允許的最小值) max="10"(允許的最大值) step(合法的數字間隔)="2"/></p>
<input type="submit"/>

搜索框

<p>請輸入搜索的關鍵詞:<input type="search"(搜索框)  name="sousuo"/></p>
<input type="submit"/>

隱藏域

<input type="hidden"(隱藏域) value="666" name="userid">

只讀和禁用

<input name="name" type="text" value="張三"  readonly(只讀文本框)>
<input type="submit "  disabled (禁用)  value="保存" >
3.表單的初級驗證

減輕服務器的壓力,保證數據的可行性和安全性
驗證方法:placeholder、required、pattern

(1)placeholder
  • input類型的文本框提供一種提示(hint)
  • 可以描述文本框期待用戶輸入何種內容
  • 提示語默認顯示,當文本框中輸入內容時提示語消失
  • 適合於input標籤:text、search、url、email和password等類型
<input type="search" name="sousuo"  placeholder(文本框輸入內容提示)="請輸入要搜索的關鍵字"/>
(2)required
  • 規定文本框填寫內容不能爲空,否則不允許用戶提交表單
  • 適合於input標籤:text、search、url、email、password、number、checkbox、radio、file等類型
<input type="text" name="username"  required/(必填項)>
(3)pattern

用戶輸入的內容必須符合正則表達式所指的規則,否則就不能提交表單

<input type="text" name="tel"  required pattern(驗證規則,正則表達式)="^1[358]\d{9}" />
(4)驗證輸入中文時字符長度爲2
  • 英文字符長度爲1,中文字符長度爲2
  • 通過ADCII碼判斷是中文還是英文
var inputLength = 0;
     //給一個變量來記錄長度
     for (var i = 0; i < str.length; i++) {
     		 var countCode = str.charCodeAt(i);
     		 //返回指定位置的字符的Unicode編碼
     		 //判斷是不是ASCII碼,Unicode碼前128個字符是ASCII碼
     		 if (countCode >= 0 && countCode <= 128) {
     		 		inputLength ++;
     		 }else{
     		 		inputLength +=2;
     		 		 //如果是擴展碼,則一次+2
     		 }
     }
(5)值允許輸入中文、數字和英文
function checkUsername()
{
		 //正則表達式
 		var reg = new RegExp("^[A-Za-z0-9\u4e00-\u9fa5]+$");
		 //獲取輸入框中的值
 		var username = document.getElementById("username").value.trim();
		 //判斷輸入框中有內容
 		if(!reg.test(username))
		 {
 				alert("請輸入中文、數字和英文!");
				 //輸入非法字符,清空輸入框
				 $("#username").val("");
		 }
}
4.select
<select(列表框) name="列表名稱" size="行數">
<option value="選項的值" selected="selected"(默認選中項)>…</option >
<option(選項) value="選項的值">…</option >
</select>
5.textarea
<textarea rows="3" cols="20">
 用行列確定大小
</textarea>
<textarea height="" width="">
 用css定義大小
</textarea>

可以通過 wrap 屬性設置文本輸入區內的換行模式

6.fieldset
<form>
  <fieldset>
    <legend>健康信息</legend>
    身高:<input type="text" />
    體重:<input type="text" />
  </fieldset>
</form>

在這裏插入圖片描述

7.menu

參考:https://blog.csdn.net/nanjinzhu/article/details/82251110

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章