Čísla ve formuláři – oddělené tisíce

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

Ahoj, potřeboval bych ve formuláři validovat prvek jako celé číslo (NUMERIC, RANGE), ale potřeboval bych akceptovat a vypisovat tvar „1 000 000“. Což je samozřejmě řetězec a validace NUMERIC neprojde. Jak na to?

Lopata
Člen | 139
+
0
-

Form::PATTERN by mohlo stačit nebo to chápu špatně?

Editoval Lopata (23. 3. 2011 17:52)

jtousek
Člen | 951
+
0
-

To neřeší problém. V modelu to je jako integer a dávat tam ty mezery (tj. použít fci number_format) by si měl dělat formulář sám. Teď to převádím v presenteru, což je špatně.

Filip Procházka
Moderator | 4668
+
0
-

Tak si poděď TextInput, přidej mu filter_in a filter_out jako je v routeru a nauč ho formátovat hodnotu v getControl (výpis) a setValue,getValue (což používá i loadHttpData)

jtousek
Člen | 951
+
0
-

To bude ono. :) Škoda, že to není přímo ve frameworku. Bylo by to fajn třeba na lokalizaci data a času. Třeba to bude v nových formulářích.

Filip Procházka
Moderator | 4668
+
0
-

Vidíš to! O téhle metodě jsem nevěděl. Jenom by to chtělo ještě jednu na naformátování výstupu getControl() …

jtousek
Člen | 951
+
0
-

Jan Tvrdík: Tohle jsem neznal. :) Nestačí, z důvodu, který uvedl HosipLan. Ale i tak díky.

Šaman
Člen | 2666
+
0
-

Nestačí to i z toho důvodu, že do validačních funkcí se předává nezfiltrovaný obsah. Já addFilter() používám na formátování českých datumů a při validaci si musím filtr nasimulovat.. Při getValues() to už funguje správně.