Umělé vyvolání Nette Live Validation

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

Ahoj, myslel jsem že to nebude takový problém, ale je…

Mám formulář, ale před jeho odesláním chci provést ještě několik JS akcí (zobrazit přes jQuery druhou stránku se sumářem informací) a pak formulář odeslat a zpracovat, ale toto mi nefunguje:

<a href="#" id="checkout" class="btn btn-lg">Change!</a>
$("#checkout").click(function() {

    if (!Nette.validateForm("#frm-orderForm"))
    {
        return false;
    }

	/.../ Rest of fuc*ing logic...
});

Console hází:

Uncaught TypeError: Cannot set property 'hasError' of undefined - live-form-validation.js:462

Jakým způsobem lze vyvolat live validaci přes submitem? Nebo existuje jiný způsob? Díky!

Editoval GEpic (18. 1. 2016 8:14)

Jan Mikeš
Člen | 771
+
0
-

Pouzivam toto a funguje:

$(this).on('submit',function(e){
	if (!Nette.validateForm(this)) {
		return false;
	}
});

Asi bude chyba v tom co mu predavas, nepredavas mu element ale id formulare

Editoval Lexi (18. 1. 2016 9:04)

GEpic
Člen | 566
+
0
-

Nějak sem pomalu usínal a došlo mi, že musím získat celý formulář, který můžu získat přes window.document… nebo ted přesně netuším. Mě šlo hlavně o to aby se formulář neodeslal, jen zvalidoval, odesílám ho až v dalším kroku.

Michal Hlávka
Člen | 190
+
+1
-

@GEpic @Lexi ti to napsal správně, akorát místo this dosaď selector toho formuláře. Takže né

if (!Nette.validateForm("#frm-orderForm")) ale if (!Nette.validateForm($("#frm-orderForm")))

GEpic
Člen | 566
+
0
-

@emptywall Díky moc!

GEpic
Člen | 566
+
0
-

Ahoj, tak jsem se konečně dostal k tomu to dodělat. Ale řešení nakonec zafungoval úplně jiné, ani když jsem opravil selector, tak to nepomohlo. Až toto:

$("#checkout").click(function(event) {

    // event.preventDefault(); <- Vypnutí href

    var form = document.getElementById('frm-orderForm');

    if (!Nette.validateForm(form)) {
        return false;
    }
});

Nevím, proč $('#frm-orderForm') nefungoval.

Editoval GEpic (22. 1. 2016 0:23)

Michal Hlávka
Člen | 190
+
0
-

@GEpic to co jsi napsal, je ve výsledku úplně stejné řešení, neházela ti console nějakou chybu, která to ovlivňovala?

GEpic
Člen | 566
+
0
-

@emptywall právě že házela, a to sice že nebyl vybrán platný formulář. Toto fungovalo, i když ano, je to stejné řešení (logicky), přesto toto fungovalo bez problémů a formulář vypsáno a používám to tak pravidelně. Ale jQuery selector bohužel formulář nevybral.

EDIT: Omlouvám se za pozdní odpověd

Editoval GEpic (1. 2. 2016 2:00)