JavaScript Validation API

約束驗證 DOM 的方法和屬性

方法

方法 描述
checkValidity() 如果 input 元素包含有效數據,則返回 true。
setCustomValidity() 設置 input 元素的 validationMessage 屬性。

屬性

屬性 描述
validity 包含與 input 元素的有效性相關的布爾屬性。
validationMessage 包含當有效性為假時瀏覽器將顯示的消息。
willValidate 指示是否將驗證 input 元素。

實例 - checkValidity() 方法

如果輸入字段包含無效數據,則顯示一條消息:

<input id="id1" type="number" min="100" max="300" required>
<button onclick="myFunction()">OK</button>
<p id="demo"></p>
<script>
function myFunction() {
  const inpObj = document.getElementById("id1");
  if (!inpObj.checkValidity()) {
    document.getElementById("demo").innerHTML = inpObj.validationMessage;
  }
}
</script>

親自試一試

有效性屬性

input 元素的有效性屬性包含許多與數據有效性相關的屬性:

屬性 描述
customError 如果設置了自定義的有效性消息,則設置為 true。
patternMismatch 如果元素的值與其 pattern 屬性不匹配,則設置為 true。
rangeOverflow 如果元素的值大于其 max 屬性,則設置為 true。
rangeUnderflow 如果元素的值小于其 min 屬性,則設置為 true。
stepMismatch 如果元素的值根據其 step 屬性無效,則設置為 true。
tooLong 如果元素的值超過其 maxLength 屬性,則設置為 true。
typeMismatch 如果元素的值根據其 type 屬性無效,則設置為 true。
valueMissing 如果元素(帶有 required 屬性)沒有值,則設置為 true。
valid 如果元素的值有效,則設置為 true。

實例

rangeOverflow 屬性

如果 input 字段中的數字大于 100(input 的 max 屬性),則顯示一條消息:

<input id="id1" type="number" max="100">
<button onclick="myFunction()">OK</button>
<p id="demo"></p>
<script>
function myFunction() {
  let text = "Value OK";
  if (document.getElementById("id1").validity.rangeOverflow) {
    text = "Value too large";
  }
}
</script>

親自試一試

rangeUnderflow 屬性

如果 input 字段中的數字大于 100(input 的 max 屬性),則顯示一條消息:

<input id="id1" type="number" min="100">
<button onclick="myFunction()">OK</button>
<p id="demo"></p>
<script>
function myFunction() {
  let text = = "Value OK";
  if (document.getElementById("id1").validity.rangeUnderflow) {
    text = "Value too small";
  }
}
</script>

親自試一試