JavaScript-Runoob:JavaScript 驗證 API
阿新 • • 發佈:2020-07-11
ylbtech-JavaScript-Runoob:JavaScript 驗證 API |
1.返回頂部 |
JavaScript 驗證 API
約束驗證 DOM 方法
Property | Description |
---|---|
checkValidity() | 如果 input 元素中的資料是合法的返回 true,否則返回 false。 |
setCustomValidity() |
設定 input 元素的 validationMessage 屬性,用於自定義錯誤提示資訊的方法。 使用 setCustomValidity 設定了自定義提示後,validity.customError 就會變成true,則 checkValidity 總是會返回false。如果要重新判斷需要取消自定義提示,方式如下: setCustomValidity('')
setCustomValidity(null)
setCustomValidity(undefined)
|
以下例項如果輸入資訊不合法,則返回錯誤資訊:
checkValidity() 方法
<input id="id1" type="number" min="100" max="300" required> <button onclick="myFunction()">驗證</button> <p id="demo"></p> <script> function嘗試一下 »myFunction() { var inpObj = document.getElementById("id1"); if (inpObj.checkValidity() == false) { document.getElementById("demo").innerHTML = inpObj.validationMessage; } } </script>
約束驗證 DOM 屬性
屬性 | 描述 |
---|---|
validity | 布林屬性值,返回 input 輸入值是否合法 |
validationMessage | 瀏覽器錯誤提示資訊 |
willValidate | 指定 input 是否需要驗證 |
Validity 屬性
input 元素的validity 屬性包含一系列關於 validity 資料屬性:
屬性 | 描述 |
---|---|
customError | 設定為 true, 如果設定了自定義的 validity 資訊。 |
patternMismatch | 設定為 true, 如果元素的值不匹配它的模式屬性。 |
rangeOverflow | 設定為 true, 如果元素的值大於設定的最大值。 |
rangeUnderflow | 設定為 true, 如果元素的值小於它的最小值。 |
stepMismatch | 設定為 true, 如果元素的值不是按照規定的 step 屬性設定。 |
tooLong | 設定為 true, 如果元素的值超過了 maxLength 屬性設定的長度。 |
typeMismatch | 設定為 true, 如果元素的值不是預期相匹配的型別。 |
valueMissing | 設定為 true,如果元素 (required 屬性) 沒有值。 |
valid | 設定為 true,如果元素的值是合法的。 |
例項
如果輸入的值大於 100,顯示一個資訊:
rangeOverflow 屬性
<input id="id1" type="number" max="100"> <button onclick="myFunction()">驗證</button> <p id="demo"></p> <script> function myFunction() { var txt = ""; if (document.getElementById("id1").validity.rangeOverflow) { txt = "輸入的值太大了"; } document.getElementById("demo").innerHTML = txt; } </script>嘗試一下 »
如果輸入的值小於 100,顯示一個資訊:
rangeUnderflow 屬性
<input id="id1" type="number" min="100" required> <button onclick="myFunction()">OK</button> <p id="demo"></p> <script> function myFunction() { var txt = ""; var inpObj = document.getElementById("id1"); if(!isNumeric(inpObj.value)) { txt = "你輸入的不是數字"; } else if (inpObj.validity.rangeUnderflow) { txt = "輸入的值太小了"; } else { txt = "輸入正確"; } document.getElementById("demo").innerHTML = txt; } // 判斷輸入是否為數字 function isNumeric(n) { return !isNaN(parseFloat(n)) && isFinite(n); } </script>嘗試一下 » 2、
2.返回頂部 |
3.返回頂部 |
4.返回頂部 |
5.返回頂部 |
6.返回頂部 |
作者:ylbtech 出處:http://ylbtech.cnblogs.com/ 本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。 |