Články v kategorii

Vlastní zpracování dat z validace - Callbacky

Aktualizováno před měsícem

Foxentry validátory se starají o kontrolu zadaných údajů – ať už jde o poštovní adresu, detaily firmy, jméno, telefonní číslo nebo e-mail. Standardně systém vyhodnotí správnost a výsledek rovnou vizuálně zobrazí uživateli pomocí stavových ikonek a barevného orámování. Pokud ale chcete mít nad formulářem absolutní kontrolu, můžete vizuální výstupy v administraci vypnout a zpracovat si výsledky na pozadí úplně sami.

K vlastnímu zpracování výsledků slouží takzvané callbacky. Jsou to javascriptové funkce, které Foxentry spouští ihned po dokončení validace. Každý callback získá od validátoru informaci o tom, zda je údaj validní, a další navazující data. S těmito daty pak můžete ve svém kódu libovolně pracovat.

Způsob implementace callbacků (API v2)

Ve Foxentry Javascript API v2 existuje 5 typů validátorů. Každý z nich má svůj unikátní kód, přes který pro něj nastavujete příslušnou callback funkci:

  • validátor adres (kód location)
  • validátor firem (kód company)
  • validátor jmen a příjmení (kód name)
  • validátor e-mailových adres (kód email)
  • validátor telefonních čísel (kód phone)

Pozor na změnu oproti verzi 1

Pokud přecházíte ze starší verze, nezapomeňte, že validátor adres změnil svůj kód z původního address na nový location. Callbacky se také nově registrují přímo přes Foxentry.setCallbacks(...) namísto původního FoxentryBuilder.

Struktura callback funkce

Každá callback funkce ve verzi 2 přijímá dva argumenty:

  1. input: obsahuje přímou referenci na konkrétní DOM element (HTMLElement), nad kterým validace právě proběhla.
  2. validation: objekt, který v atributu group obsahuje samotný výsledek validace. Zde najdete informace o tom, zda je skupina platná (isValid), typ validátoru a seznam validovaných inputů.

Ukázka kódu

Názvy svých callback funkcí si můžete zvolit libovolně. Je ale potřeba je systému předat ideálně pomocí globální funkce onFoxentryProjectLoad. Tuto funkci knihovna Foxentry automaticky zavolá ihned po svém úspěšném načtení.

Nemusíte definovat callbacky pro všechny validátory – stačí v objektu uvést jen ty, které reálně potřebujete zpracovat.


// Globální funkce, která se spustí po načtení Foxentry knihovny
function onFoxentryProjectLoad() {
  
  // Registrace callback funkcí přes Foxentry.setCallbacks
  Foxentry.setCallbacks({
    location: locationValidationHandler,
    company: companyValidationHandler,
    email: emailValidationHandler,
    name: nameValidationHandler,
    phone: phoneValidationHandler
  });
}

// Samotné callback funkce pro zpracování výstupů

function locationValidationHandler(input, validation) {
  console.warn("Zpracovávám input adresy:", input);
  console.warn("Výsledek validace adresy:", validation.group);
}

function companyValidationHandler(input, validation) {
  console.warn("Zpracovávám firemní input:", input);
  console.warn("Výsledek validace firmy:", validation.group);
}

function emailValidationHandler(input, validation) {
  console.warn("Zpracovávám e-mailový input:", input);
  console.warn("Výsledek validace e-mailu:", validation.group);
}

function nameValidationHandler(input, validation) {
  console.warn("Zpracovávám input jména:", input);
  console.warn("Výsledek validace jména:", validation.group);
}

function phoneValidationHandler(input, validation) {
  console.warn("Zpracovávám telefonní input:", input);
  console.warn("Výsledek validace telefonu:", validation.group);
}
Pořád nevíte? Ozvěte se nám