Demo – vlastní formát adresy v našeptávači

Ukázka možnosti změnit text v našeptávači adres.

Využívá dvou funkcí, které lze nastavit ve Smartform API:

Prohození obce a PSČ při našeptávání celé adresy

Při našeptávání celé adresy v našeptávači u políčka „ulice a číslo“ je adresa standardně ve formátu „ulice a číslo, PSČ obec“. V následujícím formuláři je PSČ a obec prohozená.

Změna formátování obce při našeptávání celé adresy

Při našeptávání celé adresy v našeptávači u políčka „ulice a číslo“ používá Smartform někdy místo názvu obce název pošty (když název pošty obsahuje název obce) nebo název městké části (např. v Praze). Následující formulář při našeptávání celé adresy používá výhradně název obce.

Zdrojový kód - JavaScript:

  
    
  <script type="text/javascript" src="https://secure.smartform.cz/api/v1/smartform.js" async></script>
  <script type="text/javascript">
  
    var smartform = smartform || {};
    
    smartform.beforeInit = function () {
        smartform.setClientId( 'smartform' );
    }
        
    smartform.afterInit = function () {
        smartform.getInstance( "smartform-instance-swap" ).setSuggesstionFormatter( swapCityZipSuggesstionFormatter );
        
        smartform.getInstance( "smartform-instance-municipality" ).setSuggesstionFormatter( municipalitySuggesstionFormatter );
        smartform.getInstance( "smartform-instance-municipality" ).setSelectionCallback( municipalitySelectionCallback );
    }

    /**
    * Formátuje celou adresu pro našeptávač. Prohazuje pořadí obce a PSČ. 
    */
    function swapCityZipSuggesstionFormatter( suggestion, fieldType ){
        if ( suggestion.isWholeAddress() ) {
            return suggestion.getValue("smartform-street-and-number") + ", " + suggestion.getValue("smartform-city") + ", " + suggestion.getValue("smartform-zip") ;
        }
        return null; // pouzije se defaultni format
    }
    
    /**
     * Formátuje celou adresu pro našeptávač. Místo upraveného názvu obce používá čistý název obce. 
     */
    function municipalitySuggesstionFormatter( suggestion, fieldType ){
        if ( suggestion.isWholeAddress() && fieldType=="smartform-street-and-number" ) {
            return suggestion.getValue("smartform-street-and-number") + ", " + suggestion.getValue("smartform-zip") + " " + suggestion.getValue("smartform-municipality");
        }
        return null;  // pouzije se defaultni format
    }

    /**
     * Když uživatel vybere řádek v našeptávači, do políčka "obec" se dostane čistý název obce. 
     */
    function municipalitySelectionCallback(element, text, fieldType, suggestion){
        if( suggestion.isWholeAddress() && fieldType=="smartform-city" ) {
            element.value = suggestion.getValue("smartform-municipality")
            return false;
        } 
        else
            return true;  // pouzije se defaultni hodnota
    }

  </script>    
  

Hlavní navigace: