ColorBox a nefungující validace formulářů v Nette

U kombinace Nette formulářů s Colorboxem mi nefungovala validace (formulář byl načten v plovoucím okně colorboxu pomocí Ajaxu). Je to proto, že soubor netteForms.js se inicializuje událostí windows.load:

Nette.addEvent(window, 'load', function () {
	for (var i = 0; i < document.forms.length; i++) {
		Nette.initForm(document.forms[i]);
	}
});

K ní ovšem dojde ještě před nahráním formuláře do colorboxu.

Je proto třeba do šablony, která zobrazuje formulář, přidat následující kód:

$(document).bind('cbox_complete', function() {
	for (var i = 0; i < document.forms.length; i++) {
		Nette.initForm(document.forms[i]);
	}
});

Případně – pokud nechceme procházet celým cyklem for, tak aktivovat validaci jen pro konkrétně načtený formulář:

Nette.initForm( $('#id_formulare')[0] );