Demo – dynamicky vytvořený formulář

Smartform po načtení stránky vyhledává označená vstupní políčka (elementy input) a k nim připojuje našeptávače. Tak je to u prvního formuláře na této stránce.

Pokud formuláře vznikají dynamicky až po načtení stránky, je nutné Smartform inicializovat voláním metody smartform.rebindAllForms(). To ukazuje druhý formulář na této stránce.

Běžný formulář

 

Dynamicky vytvořený formulář

 

Zdrojový kód – JavaScript

<script type="text/javascript">
   var smartform = smartform || {};

   smartform.beforeInit = function () {
       smartform.setClientId('[clientId]');
   }

   smartform.afterInit = function() {
   }

    //vytvoří dynamicky formulář a aplikuje na něj smartform
    function createForm(element) {
        element.innerHTML = '<form>' +
            '<div>' +
            '<div><label for="smartform_nazev_2">Název firmy</label> <input class="smartform-instance-2 smartform-company-name" id="smartform_nazev_2" type="text" /></div> ' +
            '<div><label for="smartform_ico_2">IČO</label> <input class="smartform-instance-2 smartform-company-registration-number" id="smartform_ico_2" type="text" /></div>' +
            '<div><label for="smartform_dic_2">DIČ</label> <input class="smartform-instance-2 smartform-company-vat-number" id="smartform_dic_2" type="text" /></div>' +
            '</div>' +
            '</form>';

        //callback, který se zavolá po rebindu formulářů
        function afterRebind() {
            console.log("afterRebind")
            var dynamickaInstance = smartform.getInstance('smartform-instance-2');
            dynamickaInstance.setFocusFieldId('smartform_nazev_2');
            dynamickaInstance.all.suggestBox.setBackgroundColor('#bcf5bc');

        }

        //provede reinicializaci všech objektů Smartformu na stránce
        smartform.rebindAllForms(afterRebind);

   }
</script>

Zdrojový kód – HTML pro první formulář

<form>
    <input class="smartform-instance-1 smartform-company-name" id="smartform_nazev_1" placeholder="Název firmy" type="text"/>
    <input class="smartform-instance-1 smartform-company-registration-number" id="smartform_ico_1" placeholder="IČO" type="text"/> 
    <input class="smartform-instance-1 smartform-company-vat-number" id="smartform_dic_1" placeholder="DIČ" type="text"/>
</form>

Zdrojový kód – HTML pro druhý formulář

Samotné tělo formuláře je definováno v JavaScriptu.

<form>
    <button onclick="createForm(this.parentNode);">Dynamicky vytvořit formulář</button>
</form>