generated from tod/odin-webpack-template
Constraint API: using setCustomValidity for country & ZIP
This commit is contained in:
parent
27117cd641
commit
84cb547df8
|
@ -12,10 +12,9 @@
|
|||
<input name="email" id="email" type="email" required placeholder="Email (christopher@example.com)">
|
||||
|
||||
<input name="country" id="country" type="text" list="countries-list" required placeholder="Country (United Kingdom)">
|
||||
<output id="country-info"></output>
|
||||
<datalist id="countries-list"></datalist>
|
||||
|
||||
<input name="zip" id="zip" type="text" required placeholder="ZIP code (12-345)" pattern="\d{2}-\d{3}">
|
||||
<input name="zip" id="zip" type="text" required placeholder="ZIP code (12-345)">
|
||||
|
||||
<input name="password" id="password" type="password" required placeholder="Password (Pa$Sw0rD)">
|
||||
<div id="password-check">
|
||||
|
|
23
src/main.js
23
src/main.js
|
@ -48,16 +48,25 @@ document.addEventListener("DOMContentLoaded", () => {
|
|||
alert("Hold up, one or more fields are invalid! Try again");
|
||||
}
|
||||
});
|
||||
|
||||
countryInput.addEventListener("input", () => {
|
||||
countryInput.setAttribute(
|
||||
"input-valid",
|
||||
countryInput.value.search(COUNTRY_REGEX) >= 0,
|
||||
);
|
||||
const valid = countryInput.value.search(COUNTRY_REGEX) >= 0;
|
||||
countryInput.setAttribute("input-valid", valid);
|
||||
if (valid) {
|
||||
countryInput.setCustomValidity("");
|
||||
} else {
|
||||
countryInput.setCustomValidity("Invalid country");
|
||||
}
|
||||
});
|
||||
|
||||
countryInput.addEventListener("change", () => {
|
||||
document.querySelector("#country-info").textContent =
|
||||
countryInput.value.search(COUNTRY_REGEX) >= 0 ? "" : "Invalid country";
|
||||
zipInput.addEventListener("input", () => {
|
||||
const valid = zipInput.value.search(/\d{2}-\d{3}/) >= 0;
|
||||
zipInput.setAttribute("input-valid", valid);
|
||||
if (valid) {
|
||||
zipInput.setCustomValidity("");
|
||||
} else {
|
||||
zipInput.setCustomValidity("ZIP Code format should be 12-345");
|
||||
}
|
||||
});
|
||||
|
||||
passwordInput.addEventListener("input", checkPasswordValidity);
|
||||
|
|
Loading…
Reference in New Issue