亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

directory search
導(dǎo)論 前言 為什么學(xué)習(xí)JavaScript JavaScript的歷史 基本語法 語法概述 數(shù)值 字符串 對(duì)象 數(shù)組 函數(shù) 運(yùn)算符 數(shù)據(jù)類型轉(zhuǎn)換 錯(cuò)誤處理機(jī)制 JavaScript 編程風(fēng)格 標(biāo)準(zhǔn)庫 Object對(duì)象 包裝對(duì)象和Boolean對(duì)象 Number對(duì)象 String對(duì)象 Math對(duì)象 Date對(duì)象 RegExp對(duì)象 JSON對(duì)象 ArrayBuffer:類型化數(shù)組 面向?qū)ο缶幊?/a> 概述 封裝 繼承 模塊化編程 DOM Node節(jié)點(diǎn) document節(jié)點(diǎn) Element對(duì)象 Text節(jié)點(diǎn)和DocumentFragment節(jié)點(diǎn) Event對(duì)象 CSS操作 Mutation Observer 瀏覽器對(duì)象 瀏覽器的JavaScript引擎 定時(shí)器 window對(duì)象 history對(duì)象 Ajax 同域限制和window.postMessage方法 Web Storage:瀏覽器端數(shù)據(jù)儲(chǔ)存機(jī)制 IndexedDB:瀏覽器端數(shù)據(jù)庫 Web Notifications API Performance API 移動(dòng)設(shè)備API HTML網(wǎng)頁元素 Canvas API SVG 圖像 表單 文件和二進(jìn)制數(shù)據(jù)的操作 Web Worker 服務(wù)器發(fā)送事件 Page Visibility API Fullscreen API:全屏操作 Web Speech requestAnimationFrame WebSocket WebRTC Web Components HTML網(wǎng)頁的API HTML網(wǎng)頁元素 Canvas API SVG 圖像 表單 文件和二進(jìn)制數(shù)據(jù)的操作 Web Worker 服務(wù)器發(fā)送事件 Page Visibility API Fullscreen API:全屏操作 Web Speech requestAnimationFrame WebSocket WebRTC Web Components 開發(fā)工具 console對(duì)象 PhantomJS Bower:客戶端庫管理工具 Grunt:任務(wù)自動(dòng)管理工具 Gulp:任務(wù)自動(dòng)管理工具 Browserify:瀏覽器加載Node.js模塊 RequireJS和AMD規(guī)范 Source Map JavaScript 程序測試 JavaScript高級(jí)語法 Promise對(duì)象 有限狀態(tài)機(jī) MVC框架與Backbone.js 嚴(yán)格模式 ECMAScript 6 介紹 附錄 JavaScript API列表
characters

    • 表單的驗(yàn)證

      • HTML 5表單驗(yàn)證

      • checkValidity方法,setCustomValidity方法,validity對(duì)象

    • 參考鏈接

表單的驗(yàn)證

HTML 5表單驗(yàn)證

所謂“表單驗(yàn)證”,指的是檢查用戶提供的數(shù)據(jù)是否符合要求,比如Email地址的格式。HTML 5原生支持表單驗(yàn)證,不需要JavaScript。

<input type="date" >

上面代碼指定該input輸入框只能填入日期,否則瀏覽器會(huì)報(bào)錯(cuò)。

但有時(shí),原生的表單驗(yàn)證不完全符合需要,而且出錯(cuò)信息無法指定樣式。這時(shí),可能需要使用表單對(duì)象的noValidate屬性,將原生的表單驗(yàn)證關(guān)閉。

var form = document.getElementById("myform");
form.noValidate = true;

form.onsubmit = validateForm;

上面代碼先關(guān)閉原生的表單驗(yàn)證,然后指定submit事件時(shí),讓JavaScript接管表單驗(yàn)證。

此外,還可以只針對(duì)單個(gè)的input輸入框,關(guān)閉表單驗(yàn)證。

form.field.willValidate = false;

每個(gè)input輸入框都有willValidate屬性,表示是否開啟表單驗(yàn)證。對(duì)于那些不支持的瀏覽器(比如IE8),該屬性等于undefined。

麻煩的地方在于,即使willValidate屬性為true,也不足以表示瀏覽器支持所有種類的表單驗(yàn)證。比如,F(xiàn)irefox 29不支持date類型的輸入框,會(huì)自動(dòng)將其改為text類型,而此時(shí)它的willValidate屬性為true。為了解決這個(gè)問題,必須確認(rèn)input輸入框的類型(type)未被瀏覽器改變。

if (field.nodeName === "INPUT" && field.type !== field.getAttribute("type")) {
    // 瀏覽器不支持該種表單驗(yàn)證,需自行部署JavaScript驗(yàn)證
}

checkValidity方法,setCustomValidity方法,validity對(duì)象

checkValidity方法表示執(zhí)行原生的表單驗(yàn)證,如果驗(yàn)證通過返回true。如果驗(yàn)證失敗,則會(huì)觸發(fā)一個(gè)invalid事件。使用該方法以后,會(huì)設(shè)置validity對(duì)象的值。

每一個(gè)表單元素都有一個(gè)validity對(duì)象,它有以下屬性。

  • valid:如果該元素通過驗(yàn)證,則返回true。

  • valueMissing:如果用戶沒填必填項(xiàng),則返回true。

  • typeMismatch:如果填入的格式不正確(比如Email地址),則返回true。

  • patternMismatch:如果不匹配指定的正則表達(dá)式,則返回true。

  • tooLong:如果超過最大長度,則返回true。

  • tooShort:如果小于最短長度,則返回true。

  • rangeUnderFlow:如果小于最小值,則返回true。

  • rangeOverflow:如果大于最大值,則返回true。

  • stepMismatch:如果不匹配步長(step),則返回true。

  • badInput:如果不能轉(zhuǎn)為值,則返回true。

  • customError:如果該欄有自定義錯(cuò)誤,則返回true。

setCustomValidity方法用于自定義錯(cuò)誤信息,該提示信息也反映在該輸入框的validationMessage屬性中。如果將setCustomValidity設(shè)為空字符串,則意味該項(xiàng)目驗(yàn)證通過。

參考鏈接


Previous article: Next article: