Nastavení callback funkce po validaci

Foxentry validátory umožňují validovat zadané údaje, či už jde o správnost adresy, názvu podnikatelského subjektu, jména, telefonního čísla nebo emailové adresy. Každý validátor sám vyhodnotí validitu zadaného údaje a vizuálně zobrazí uživatelovi v prohlížeči výsledek validace formou ikonky a orámování. Toto chování je však možné vypnout v administraci projektu v případě, že nechcete zobrazovat uživatelovi předvolený vizuální výstup validace, ale chcete výsledek validace nejprve zpracovat a následně sami rozhodnout, co a v jaké podobě zobrazíte uživatelovi.

Na vlastní zpracování výsledku validace slouží tzv. callbacky, teda javascript funkce, které Foxentry spouští po validaci daného údaje. Každý callback získává od validátoru informáci o validitě zadaného údaje (validní/nevalidní) a další data související s předmětem validace (např. detaily adresného bodu, detaily firmy a podobně). Tato data následně můžete zpracovat podle sebe (například vypsat uživatelovi).

Způsob implementace callbacků

Každý callback musí existovat jako javascript funkce s jedním vstupním parametrem. Do tohoto parametru vloží Foxentry validátor výstupu z validace, teda
informaci o validitě údajů a případně detaily validovaného údaje.

Vo Foxentry existuje 5 typů validátorů, přičemž každý typ má přidělený kód, který s ním umí pracovat. Tento kód použijete na nastavení callback funkce pro daný typ validátoru.

Typy Foxentry validátorů a jejich kódy:

  • validátor adres (kód „address“)
  • validátor firem (kód „company“)
  • validátor jmen a příjmení (kód „name“)
  • validátor emailových adres (kód „email“) a
  • validátor telefonních čísel (kód „phone“).

Každá z vašich callback funkcí může mít jakýkoliv název, je to jen na vás. Je však potřebné tento název Foxentry oznámit přes funkci „onFoxentryProjectLoad“, která se v případě, že existuje (máte ji ve svém javascript kóde zadefinovanou), spouští automaticky po spuštění Foxentry a načítaní vašeho projektu do prohlížeče. Vytvořte si teda tuto funkci a v rámci ní nadefinujte callback funkce způsobem, jako vidíte na kódu níže. Není nutné definovat callback funkce pro všechny typy validátorů.

// kod pro vložení Foxentry, použijte vlastní
var Foxentry, e = document.querySelector("script"), s = document.createElement('script');
s.setAttribute('type', 'text/javascript');
s.setAttribute('async', 'true');
s.setAttribute('src', 'https://app.foxentry.cz/lib');
e.parentNode.appendChild(s);
s.onload = function(){ 
  Foxentry = new FoxentryBase('foxentryform');      
}

// funkce, která se spustí po načtení Foxentry projektu do prohlížeče
function onFoxentryProjectLoad(){
  // definice callback funkcí, můžete nadefinovat všechny nebo jen některé
  FoxentryBuilder.setCallbacks(
    {
      "address" : addressValidationHandler,
      "company" : companyValidationHandler,
      "email"   : emailValidationHandler,
      "name"    : nameValidationHandler,
      "phone"   : phoneValidationHandler,
    }
  );   
}
   
// samotné callback funkce, ve kterých zpracujete výstup z validátorů    
function addressValidationHandler(data){
  console.warn("address validation response", data);     
}

function companyValidationHandler(data){
  console.warn("company validation response", data);     
}

function emailValidationHandler(data){
  console.warn("email validation response", data);     
}

function nameValidationHandler(data){
  console.warn("name validation response", data);     
}

function phoneValidationHandler(data){
  console.warn("phone validation response", data);     
}