您好,登錄后才能下訂單哦!
小編給大家分享一下HTML5新添加的表單功能有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
HTML5針對表單方面也做了一些完善,新添加了一些驗證數據的功能,新添加了一些標簽屬性。有了這些驗證功能,就可以不用JavaScript進行驗證,哪怕是JavaScript被禁用了也可以毫無壓力的驗證表單了。開發人員不用JavaScript,瀏覽器會根據標記中的規則執行驗證,然后顯示適當的錯誤信息。這些人性化的功能在支持HTML5的瀏覽器中才能有效,支持的瀏覽器有Opera 10+、Safari 5+、Chrome和Firefox 4+。
HTML5新添加的表單功能有:其他輸入類型、輸入模式、數值范圍、必填字段、禁用驗證和檢測有效性。
說到輸入類型,大家很快的就會想到input標簽。只有input標簽才可以規定不同的類型。HTML5恰恰就是在input中的type屬性添加了一些新的屬性值。這些新的屬性值不僅可以反映數據類型的信息,還可以提供一些默認的驗證功能。其中,”email”和”url”是兩個得到支持最多的類型,各瀏覽器也為它們增加了定制的驗證機制。新添加的類型如下
email : 電子郵箱文本框,跟普通的沒什么區別,當輸入不是郵箱的時候,驗證通不過。移動端的鍵盤會有變化
tel : 電話號碼
url : 網頁的URL
search : 搜索引擎。chrome下輸入文字后,會多出一個關閉的X
range : 特定范圍內的數值選擇器,min、max、step( 步數 )
number : 只能包含數字的輸入框
color : 顏色選擇器
datetime : 顯示完整日期
datetime-local : 顯示完整日期,不含時區
time : 顯示時間,不含時區
date : 顯示日期
week : 顯示周
month : 顯示月
小例子HTML代碼
<form action="http://www.baidu.com"> <input type="email" /> <input type="tel" /> <input type="url" /> <input type="search"/> <input type="range" min="0" max="10" step="2" /> <input type="number"/> <input type="color"/> <input type="date"/> <input type="datetime"/> <input type="datetime-local"/> <input type="time"/> <input type="month"/> <input type="week"/> <!-- placeholder是讓密碼輸入框擁有默認提示 --> <input type="password" placeholder="請輸入密碼"/> <input type="submit"/> </form>
HTML5不僅新添加了一些新的輸入類型,還添加了新的屬性——patten屬性。Patten屬性的值是一個正則表達式,是用于匹配文本框中的值。在寫正則的時候要注意,開頭和結尾不用加^和$符號(假定已經有了)。這兩個符號表示輸入的值必須是從頭到尾與模式匹配。小例子如下
HTML代碼
<form action="#"> <input type="text" name="user" pattern="\d{1,9}"/> <!-- 點擊之后 會本頁面提交--> <input type="submit"/> </form>
Chrome預覽效果
除了”email”和”url”,HTML5還定義了另外幾個輸入元素。這幾個元素都要求填寫某種基于數字的值。但是瀏覽器對這些新添加的值兼容性并不是很好。所以對這些數值類型的輸入元素,可以指定min屬性(最小的可能值)、max屬性(最大的可能值)和step屬性(從min到max的兩個刻度之間的差值)。小例子如下
HTML代碼
<input type="range" min="0" max="10" step="2" id="range" />
JavaScript代碼
var oInput=document.getElementById("range"); oInput.stepUp() //每次加1 oInput.stepUp(5) //每次加5 oInput.stepDown() //每次減1 oInput.stepDown(10) //每次減10
在表單字段中指定required屬性,即可提示用戶這是為必填項不能為空。這個屬性適用于input標簽,textarea標簽,select標簽(Opera 12+支持)。在JavaScript中通過對于的required屬性,可以檢測表單是否為必填項。
對于空著的必填字段,不同瀏覽器的處理方式不同。Opera 11和Firefox 4會阻止表單提交病在相應字段下面彈出幫助框,Chrome(9之前)和Safari(5之前)則什么都不做也不阻止表單提交。小例子如下
HTML代碼
<input type="text" id="text" required/>
JavaScript代碼
//檢驗是否支持必填屬性 //支持的為true ,不支持的為false var is = "required" in document.createElement("input");
通過在form標簽中添加novalidate屬性,可以讓表單不自行驗證。JavaScript中可以使用novalidate獲取,若存在則是true,反之則是false。如果提交按鈕有多個,為了指定點擊某一個提交按鈕不必驗證表單,可以在相應的按鈕上添加formnovalidate屬性。也可用JavaScript添加禁用驗證的屬性。小例子如下
HTML代碼
<form action="http://blog.csdn.net/lee_magnum"> <input type="text" id="text" required/> <input type="submit" value="跳過驗證,直接提交" formnovalidate/> </form> <form action="http://blog.csdn.net/lee_magnum" novalidate> <input type="text" id="text" required/> <input type="submit" value="直接提交"/> </form>
在JavaScript中使用checkValidity()方法可以檢測表單中的某個字段是否有效。所有表單字段都有這個方法,如果字段的值是有效的,這份方法會返回true,否則則是false。與checkValidity()方法相比,validity屬性可以告訴你很多東西。
valueMissing : 輸入值為空時
typeMismatch : 控件值與預期類型不匹配
patternMismatch : 輸入值不滿足pattern正則
tooLong : 超過maxLength最大限制
rangeUnderflow : 驗證的range最小值
rangeOverflow:驗證的range最大值
stepMismatch: 驗證range 的當前值 是否符合min、max及step的規則
customError: 不符合自定義驗證,是否設置setCustomValidity(); 自定義驗證
placeholder : 輸入框提示信息
autocomplete : 是否保存用戶輸入值。默認為on,關閉提示選擇off
autofocus : 指定表單獲取輸入焦點
list和datalist : 為輸入框構造一個選擇列表。list值為datalist標簽的id
Formaction : 在submit里定義提交地址
小例子JavaScript代碼
if(input.validity && !input.validity.valid){ if(input.validity.valueMissing){ alert("不能為空") }else if(input.validity.typeMismatch){ alert("控件值與預期類型不匹配"); } }
以上是“HTML5新添加的表單功能有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。