Numeron valinta
paino
Valinta liukusäätimellä
Datalist
Sähköpostiosoitteen validointi
CSS
input:invalid { border: 2px dashed red; padding: 2px; } input:valid { border: 2px solid black; padding: 2px; } progress, meter { height: 2em; width: 50%; }
HTML
Numeron valinta
paino
Valinta liukusäätimellä
Datalist
Sähköpostiosoitteen validointi
Javascript
let email = document.forms.lomake.email; email.addEventListener("input", function (e) { let email = e.target; // nollataan virheilmoitus email.setCustomValidity(""); // jos syöte ei ole validi niin asetetaan virheilmoitus // tämä tarkistaisi kaikki virheet. Palauttaa true jos kaikki ok // if (!email.validity.valid) { // mutta reagoidaan omalla virheilmoituksella vain jos rikotaan patternia. Palauttaa true jos pattern ei toteudu. Kts. muut vaihtoehdot // https://developer.mozilla.org/en-US/docs/Web/API/ValidityState if (email.validity.patternMismatch) { email.setCustomValidity("Syötä @student.jyu.fi-päätteinen sähköpostiosoite"); } // varmistetaan, että virheilmoitus näkyy heti. Chrome ei näytä ilman tätä // riippuu tilanteesta kannattaako kutsua tässä vaiko vasta lomakkeen submit-painikkeen yhteydessä email.reportValidity(); }); let range = document.forms.lomake.ika; let meter = document.querySelector('meter'); meter.value = range.value; range.addEventListener("input", function (e) { let range = e.target; meter.value = range.value; }); let paino = document.forms.lomake.paino; let progress = document.querySelector('progress'); progress.value = paino.value; paino.addEventListener("input", function (e) { let paino = e.target; progress.value = paino.value; }); // käsitellään lomakkeen "lähettäminen" document.getElementById('lomake').addEventListener("submit", function (e) { e.preventDefault(); // tarkistaa kaikki kentät: console.log("Onko lomake validi:" + e.target.checkValidity()); // käydään vielä kaikki kentät läpi. Jos lomakkeella on fieldset-elementtejä niin myös ne tulevat mukaan for ( let o of document.forms[0] ) { // Tarkistukset voi ajaa myös yksittäisille kentille let v = o.checkValidity(); // tulostetaan konsoliin kentän nimi,arvo, oliko kenttä pakollinen vai ei ja onko kenttä valid vai ei console.log( o, o.name, o.value, o.required, " ( " + v + " ) "); o.reportValidity(); } // aktivoidaan lomakkeen normaali toiminta validoinnin yhteydessä. Esim. firefox vie kohdistimen ensimmäiseen // virheelliseen kenttään document.forms[0].reportValidity(); });
Konsoli