Demo – dynamicky vytvořený formulář
První formulář je běžný formulář. Druhý formulář je vytvářen dynamicky stisknutím tlačítka. Pro dynamické vytvoření formuláře je nutno použít metodu smartform.rebindAllForms().
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() {
smartform.getInstance('smartform-instance-1').all.suggestBox.setBackgroundColor('gray');
}
//vytvoří dynamicky formulář a aplikuje na něj smartform
function createForm(element) {
element.innerHTML = `
<form>
<input class="smartform-instance-2 smartform-address-street-and-number" id="smartform_ulice2" placeholder="Ulice a číslo" type="text" />
<input class="smartform-instance-2 smartform-address-city" id="smartform_obec2" placeholder="Obec" type="text" />
<input class="smartform-instance-2 smartform-address-zip" id="smartform_psc2" placeholder="PSČ" type="text" />
</form>`;
//callback, který se zavolá po rebindu formulářů
function afterRebind () {
var dynamickaInstance = smartform.getInstance('smartform-instance-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-address-street-and-number" id="smartform_ulice1" placeholder="Ulice a číslo" type="text" />
<input class="smartform-instance-1 smartform-address-city" id="smartform_obec1" placeholder="Obec" type="text" />
<input class="smartform-instance-1 smartform-address-zip" id="smartform_psc1" placeholder="PSČ" 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>