Články v kategorii
- Instalace do webového formuláře
- Instalace do platforem
- Shoptet - implementace pomocí skriptu
- Jak vložit script do webu
- Rest API
- Javascriptové API
- Obecné nastavení služeb
- Mapování vstupů – ruční nastavení
- Mapování vstupů – webový konfigurátor
- Nastavení přepínače státu
- Zjištění stavu validace formulářů
- Jak vymazat cache prohlížeče
- Cookies 2022
- Shopify
- Nastavení callback funkce po validaci
Nastavení callback funkce po validaci
Foxentry validátory umožňují validovat zadané údaje, ať 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í správnost 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. Jsou to javascript funkce, které Foxentry spouští po validaci daného údaje. Každý callback získává od validátoru informaci 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, tedy informaci o validitě údajů a případně detaily validovaného údaje.
Ve 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řeba 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ódu definovanou), 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í
// 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, validatorInfo){
console.warn("address validation response", data, validatorInfo);
}
function companyValidationHandler(data, validatorInfo){
console.warn("company validation response", data, validatorInfo);
}
function emailValidationHandler(data, validatorInfo){
console.warn("email validation response", data, validatorInfo);
}
function nameValidationHandler(data, validatorInfo){
console.warn("name validation response", data, validatorInfo);
}
function phoneValidationHandler(data, validatorInfo){
console.warn("phone validation response", data, validatorInfo);
}
Pořád nevíte? Ozvěte se nám