Vlastní validační pravidlo na Nette.forms.js – neustále vyskakující alert s validační message

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

Ahoj,
vytvořil jsem si vlastní validační pravidlo dle tohoto návodu: https://doc.nette.org/…s/validation
Na straně serveru vše funguje přesně tak, jak má, ovšem narazil jsem u klientské validace. Problém je v tom, že když si vložím validaci do JS souboru, který se mi načítá na konci stránky, tak v případě, že validační pravidlo vrátí false, tak mi error hláška vyskakuje neustále dokola, např. při kliku někam na stránku apod. Tj. nezobrazí se pouze jednou při submitu, ale při každém dalším stisku tlačítka myši klientem.
Zkusil jsem to i obalit pouze submitem formuláře, ale nepomohlo … neustále na mě vyskakuje alert s chybovou hláškou, kterou vrací validační pravidlo. Jelikož se jedná o validaci datepickerů, tak to je docela problém, protože kvůli tomuto chování nejsem schopen datapicker znovu vyvolat a zadané datum upravit :D

Aktuálně to mám takto:

$('form').submit(function () {
		Nette.validators.CustomFormRules_validateDateRange = function (elem, param, value) {
			var dateFromParts = param[0].match(/(\d+)\/(\d+)\/(\d+) (\d+):(\d+):(\d+)/);
			dateFrom = new Date(dateFromParts[3], dateFromParts[2], dateFromParts[1], dateFromParts[4], dateFromParts[5], dateFromParts[6]);
			var dateToParts = param[1].match(/(\d+)\/(\d+)\/(\d+) (\d+):(\d+):(\d+)/);
			dateTo = new Date(dateToParts[3], dateToParts[2], dateToParts[1], dateToParts[4], dateToParts[5], dateToParts[6]);
			return dateFrom <= dateTo;
		};
	});

Verze Nette 2.2.7

Editoval iguana007 (14. 5. 2015 12:48)

Jan Tvrdík
Nette guru | 2595
+
0
-

Máš aktuální netteForms.js?

iguana007
Člen | 970
+
0
-

Ano mám

iguana007
Člen | 970
+
0
-

Tak už to šlape – dal jsem tu validaci jen na jeden z datetime pickerů, což z hlediska logiky vlastně stačí a přestalo to zlobit.