Validace¶
Modul Forms umožňuje definovat validační pravidla pro pole formuláře. Validace se konfiguruje ve vlastnosti Validation na definici pole. Podporovány jsou dva typy validace: regulární výraz a vlastní funkce.
Regex validace¶
Validuje hodnotu pole pomocí regulárního výrazu. Pokud hodnota neodpovídá výrazu, zobrazí se chybová zpráva.
| Vlastnost | Popis |
|---|---|
Regex |
Regulární výraz pro validaci hodnoty pole. [Povinné] |
ErrorMessage |
Chybová zpráva zobrazená při neúspěšné validaci. Podporuje lokalizaci pomocí Resources. [Povinné] |
Příklad: Validace e-mailu¶
{
"Groups": [
{
"Name": "Kontakt",
"Fields": [
{
"InternalName": "my_emailField",
"Validation": {
"Regex": "^\\S+@\\S+\\.\\S+$",
"ErrorMessage": "validations.invalidEmail"
}
}
]
}
],
"Resources": [
{
"LCID": "1029",
"validations": {
"invalidEmail": "E-mail není platný"
}
},
{
"LCID": "1033",
"validations": {
"invalidEmail": "Email is not valid"
}
}
]
}
Příklad: Validace IČO (8 číslic)¶
{
"InternalName": "ICO",
"Validation": {
"Regex": "^\\d{8}$",
"ErrorMessage": "validations.invalidICO"
}
}
Funkční validace¶
Validuje hodnotu pole pomocí vlastní JavaScript funkce definované v CustomScript. Funkce vrátí undefined pro platnou hodnotu nebo řetězec s chybovou zprávou pro neplatnou hodnotu.
| Vlastnost | Popis |
|---|---|
ValidationFunction |
Název validační funkce v Custom Script. [Povinné] |
Příklad: Vlastní validační funkce¶
Konfigurace pole:
{
"InternalName": "Amount",
"Validation": {
"ValidationFunction": "validateAmount"
}
}
Custom Script:
function validateAmount(value) {
if (value === undefined || value === null) return undefined;
const num = parseFloat(value);
if (isNaN(num)) return "Hodnota musí být číslo.";
if (num < 0) return "Částka nesmí být záporná.";
if (num > 1000000) return "Částka nesmí překročit 1 000 000.";
return undefined; // Validace úspěšná
}
Lokalizace chybových zpráv¶
Chybové zprávy pro regex validaci podporují lokalizaci pomocí pole Resources v konfiguraci formuláře. Klíč v ErrorMessage se vyhledá v Resources podle aktuálního jazyka (identifikátoru LCID).
Běžné LCID hodnoty:
| LCID | Jazyk |
|---|---|
1029 |
Čeština |
1033 |
Angličtina |
Pokud ErrorMessage neodpovídá žádnému klíči v Resources, zobrazí se přímo jako text.