Vastausten validointi
Yksi tapa varmistaa tiedon laatu on lisätä rajoitteita lomakkeen kenttiin. Rajoitteet estävät käyttäjiä syöttämästä virheellisiä tai mahdottomia vastauksia. Esimerkiksi henkilön tuloja kysyttäessä haluat välttää epärealistisia arvoja, kuten negatiivisia lukuja tai erittäin suuria arvoja. Tietorajoitteiden lisääminen lomakkeeseen on helppoa. Noudata yksinkertaisesti alla olevia ohjeita:
- Lisää lomakkeeseen uusi sarake nimeltä “constraint”.
- Kirjoita “constraint”-sarakkeeseen kaava, joka määrittää vastauksen rajat.
Esimerkki
Tarkastellaan esimerkkiä, jossa haluamme lisätä rajoitteen henkilön tuloille. Rajoite edellyttää tulojen olevan välillä 0 ja 1 000 000 dollaria. Näin voit asettaa rajoitteen:
name | constraint |
|---|---|
| Income | . >= 0 & . <= 1000000 |
Yllä olevassa esimerkissä “.” kaavassa viittaa takaisin kysymysmuuttujaan, joka edustaa käyttäjän syöttämää arvoa “Income”-kysymykseen. Rajoite “. >= 0 && . <= 1000000” varmistaa, että syötetty tulo on suurempi tai yhtä suuri kuin 0 ja pienempi tai yhtä suuri kuin 1 000 000.
Kova rajoite
Kova rajoite estää lomakkeen lähettämisen kokonaan, jos syötetty arvo ei täytä lauseketta. Luetteloija ei voi edetä ennen kuin hän syöttää kelvollisen arvon.
Lisätäksesi kovan rajoitteen, kirjoita lausekkeesi constraint-sarakkeeseen. Halutessasi lisää ihmisluettava viesti constraint_message-sarakkeeseen:
type | name | label | constraint | constraint_message |
|---|---|---|---|---|
| integer | age | Vastaajan ikä | . > 0 and . <= 120 | Iän tulee olla välillä 1 ja 120 |
| decimal | temperature | Kehon lämpötila (°C) | . >= 35 and . <= 42 | Lämpötilan tulee olla välillä 35°C ja 42°C |
| text | phone | Puhelinnumero | regex(., '^[0-9]{10}$') | Syötä 10-numeroinen puhelinnumero |
Useita ehtoja
Yhdistä ehtoja and- / or-operaattoreilla:
. >= 0 and . <= 100
. = 'yes' or . = 'no'
regex()-funktion käyttäminen mallivalidointiin
regex(value, pattern)-funktio testaa arvon säännöllistä lauseketta vasten:
type | name | label | constraint | constraint_message |
|---|---|---|---|---|
| text | Sähköpostiosoite | regex(., '^[^@]+@[^@]+\.[^@]+$') | Syötä kelvollinen sähköpostiosoite | |
| text | zip_code | Postinumero | regex(., '^[0-9]{5}$') | Syötä 5-numeroinen postinumero |
Muiden kenttien viittaaminen rajoitteessa
Käytä ${fieldname} viitataksesi muiden kysymysten arvoihin:
type | name | label | constraint | constraint_message |
|---|---|---|---|---|
| integer | end_year | Päättymisvuosi | . >= ${start_year} | Päättymisvuoden on oltava aloitusvuoden jälkeen |
| decimal | loan_repaid | Maksettu summa | . <= ${loan_amount} | Ei voida maksaa enemmän kuin lainasumma |
Pehmeä varoitus
Pehmeä varoitus (kutsutaan myös pehmeäksi rajoitteeksi tai varoitukseksi) varoittaa luetteloijaa, että arvo näyttää epätavalliselta, mutta antaa silti edetä. Tämä on hyödyllistä, kun arvo on teknisesti kelvollinen mutta tilastollisesti epätodennäköinen.
Yleisin malli on käyttää note-kenttää relevant-lausekkeen kanssa merkitsemään epäilyttävä arvo, yhdistettynä acknowledge-kysymykseen vahvistamiseksi:
type | name | label | relevant |
|---|---|---|---|
| integer | children | Lasten lukumäärä | |
| note | children_warning | Varoitus: Syötit ${children} lasta. Vahvista, että tämä on oikein. | . > 15 |
| trigger | children_confirm | Vahvista, että lasten lukumäärä on oikein | ${children} > 15 |
Pehmeä varoitus vain constraint_message:lla
Yksinkertaisemman pehmeän varoituksen saamiseksi voit muotoilla rajoitteen varoittamaan äärimmäisistä arvoista, mutta sallia silti laajan alueen:
type | name | label | constraint | constraint_message |
|---|---|---|---|---|
| integer | children | Lasten lukumäärä | . >= 0 and . <= 30 | Tämä arvo vaikuttaa erittäin suurelta. Tarkista. |
Kovien ja pehmeiden rajoitteiden välinen ero on tärkeä tiedon laadun kannalta. Käytä kovia rajoitteita loogisesti mahdottomille arvoille (negatiiviset iät, yli 100°C:n lämpötilat). Käytä pehmeitä varoituksia tilastollisesti epätodennäköisille mutta ei mahdottomille arvoille — et halua estää laillisia reunatapauksia.