Monday 14 August 2017

JavaScript Validation API

Constraint Validation DOM Methods

PropertyDescription
checkValidity()Returns true if an input element contains valid data.
setCustomValidity()Sets the validationMessage property of an input element.

If an input field contains invalid data, display a message:

The checkValidity() Method

<input id="id1" type="number" min="100" max="300" required>
<button onclick="myFunction()">OK</button>

<p id="demo"></p>

<script>
function myFunction() {
    var inpObj = document.getElementById("id1");
    if (inpObj.checkValidity() == false) {
        document.getElementById("demo").innerHTML = inpObj.validationMessage;
    }
}
</script>
Try it Yourself »

Constraint Validation DOM Properties

PropertyDescription
validityContains boolean properties related to the validity of an input element.
validationMessageContains the message a browser will display when the validity is false.
willValidateIndicates if an input element will be validated.


Validity Properties

The validity property of an input element contains a number of properties related to the validity of data:
PropertyDescription
customErrorSet to true, if a custom validity message is set.
patternMismatchSet to true, if an element's value does not match its pattern attribute.
rangeOverflowSet to true, if an element's value is greater than its max attribute.
rangeUnderflowSet to true, if an element's value is less than its min attribute.
stepMismatchSet to true, if an element's value is invalid per its step attribute.
tooLongSet to true, if an element's value exceeds its maxLength attribute.
typeMismatchSet to true, if an element's value is invalid per its type attribute.
valueMissingSet to true, if an element (with a required attribute) has no value.
validSet to true, if an element's value is valid.

Examples

If the number in an input field is greater than 100 (the input's max attribute), display a message:

The rangeOverflow Property

<input id="id1" type="number" max="100">
<button onclick="myFunction()">OK</button>

<p id="demo"></p>

<script>
function myFunction() {
    var txt = "";
    if (document.getElementById("id1").validity.rangeOverflow) {
       txt = "Value too large";
    }
    document.getElementById("demo").innerHTML = txt;
}
</script>
Try it Yourself »
If the number in an input field is less than 100 (the input's min attribute), display a message:

The rangeUnderflow Property

<input id="id1" type="number" min="100">
<button onclick="myFunction()">OK</button>

<p id="demo"></p>

<script>
function myFunction() {
    var txt = "";
    if (document.getElementById("id1").validity.rangeUnderflow) {
       txt = "Value too small";
    }
    document.getElementById("demo").innerHTML = txt;
}
</script>
Try it Yourself »

No comments:

Post a Comment