AJAX form odesílaný vícekrát

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Aearsis
Člen | 57
+
0
-

Zdravím,

mám form, který po odeslání AJAXem ve snippetu přepíše sám sebe. Z nějakého zvláštního důvodu se mi znovu nenabindují eventy, momentálně používám tento nette.ajax.js , ale zkoušel jsem jich více. Firebug nehlásí žádnou chybu, při krokování funkce proběhne a teoreticky vše nabinduje (při prvním i druhém načtení). Prakticky jedinou zvláštní okolností je toto:

<script>
...
function (rh) {
            $(this.linkSelector).off('click.nette', rh).on('click.nette', rh);
            var $forms = $(this.formSelector);
            $forms.off('submit.nette', rh).on('submit.nette', rh);
            $forms.off('click.nette', ':image', rh).on('click.nette', ':image', rh);
            $forms.off('click.nette', ':submit', rh).on('click.nette', ':submit', rh);

// $forms je nalezen, ale $forms.find('input') == []

            var buttonSelector = this.buttonSelector;
            $(buttonSelector).each(function () {
// a tento callback nikdy neproběhne, přestože selector je "input.ajax:submit", a element by měl existovat
                $(this).closest('form')
                    .off('click.nette', buttonSelector, rh)
                    .on('click.nette', buttonSelector, rh);
            });
        },

Když jsem zkoušel nasimulovat chování bez Nette app v pozadí s jednoduchým jQuery kódem, všechno fungovalo jak má. Nemáte někdo nápad, kde by mohl být zakopaný pes?

Předem díky, já už jsem v koncích…

Aearsis
Člen | 57
+
0
-

Jak už to bývá, na chybu jsem po asi 8 hodinách přišel 5 minut po odeslání na fórum. Pro další, aby se nenachytali – form byl omylem nevalidně v tabulce (table > form > tbody), a DOM kvůli tomu nějak blbnul a nenašel ho.

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Budiž vzešlým přínosem, že informaci o tomto pravidle by stálo za to napsat někam k doplňku :).