Vlastní validační pravidlo na Nette.forms.js – neustále vyskakující alert s validační message
- iguana007
- Člen | 970
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)