Zdravím,
začal jsem v aplikaci používat datagrid "Grido" pro nette a v gridu při "inline editaci", když mám nastaven sloupce setRequired a ve kterém lze hodnoty inline editovat, tak při prvním pokusu o uložení prázdné hodnoty mi to vypíše v consoli prohlížeče:
live-form-validation.js:488
Uncaught TypeError: Cannot read property 'hasError' of undefined
Jakmile se tento error objeví, tak při dalších pokusech o uložení prazdné hodnoty se errory neobjevují a správně se u kolonky objeví hláška, že pole je povinné. Udělá to vždy pouze jednou do doby než stránku reloadnu.
Aby se tento error neobjevoval, musím mít současně v aplikaci nalinkovaný soubor netteForms.js:
https://cdn.rawgit.com/nette/forms/v2.2.4/src/assets/netteForms.js
Já jsem ale někde četl, že netteForms.js jsou součástí té knihovny live-form-validation.js, a tak nevím, zda mám mít v aplikaci nalinkované oba soubory a je to tak v pořádku.
Lze to vyzkoušet na tomto example příkladu při inline editaci:
https://github.com/o5/grido-examples
Postup:
- nalinkovat do layoutu live-form-validation.js a zakomentovat původní "netteForms.js"
- spustit grido examples na presenteru "EditablePresenter.php", kde je umožněna inline editace
- udělat inline editaci ve sloupci "Surname": Na nějakou jeho hodnotu najet myší, podržet CTRL + doubleclick
- objeví se input pro editaci a obsah toho příjmení celý smazat a dát enter - v tomto kroku při snaze o uložení by se měla vedle inputu objevit hláška "Surname is required.", protože Surname má nastaveno setRequired('...').
Ale neobjeví, objeví se viz. výše uvedený error. Další pokusy už chybu nehlásí a hláška se vedle inputu správně zobrazuje do doby, než se udělá reload celé stránky.
Error se tedy objevuje jen pokud mám v aplikaci "live-form-validation.js" a současně nemám "netteForms.js".
Předem se omlouvám, pokud to sem nepatří a pokud by to šlo nějak opravit, tak by to bylo skvělé.
Ale jestli je nutné mít v aplikaci nalinkovaný i "netteForms.js", tak potom je tedy vše v pořádku. Já jen myslel, že mi stačí "live-form-validation.js" bez toho netteForms.js.
Děkuji za případnou radu :)