netteForms.js přepsané do jQuery

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

Ač je javascriptová podpora pro formuláře v Nette skvělá, má několik drobných chybek, totiž to alert upozornění o špatně vyplněném poli je otravné a protože se mi nechtělo čekat na oficiální přepis netteForms, zbastlil jsem si vlastní verzi.

Co to umí? Všechno co originál, ale přidává podporu uživatelsky přívětivé validace, včetně podpory „live validace“.

Kde to najdu? https://gist.github.com/1224180

Jak vypnu live validaci?

<script>
jQuery.extend(jQuery.Nette.form.defaults, {onKeyUp: false});
</script>

Kam hlásit bugy? Zde do fóra.

Kam posílat dárkové koše? Mně :).

ic
Člen | 430
+
0
-

Zrovna dneska mě napadlo, jestli už je ono netteFotms.js v tom jQuery hotové… a nebylo.
Dívám, se, že ty přídavky to pěkně nafoukly. Prakticky na dvojnásobek původní verze.

Rozhodně dneska vyzkouším… díky.

iguana007
Člen | 970
+
0
-

Taky to zkusím a dám vědět. Díky.

redhead
Člen | 1313
+
0
-

Jen pro informaci, live validace i pro podporu jakéhokoliv JS frameworku už je nějakou dobu zde

Furt jsem nějak čekal na vydání nových formulářů, protože mělo obsahovat výrazné změny i v JS validaci a furt nic, tak tady to máte.

Je to vylepšená verze původní Live Form Validation

Editoval redhead (18. 9. 2011 10:56)

22
Člen | 1478
+
0
-

do doplňků s tím panové :-)

pave.kucera
Člen | 122
+
0
-

@ic: skoro určitě by to šlo napsat líp a kratší, ale nejsem javascriptový programátor, bral jsem to jako takové malé cvičení a tohle z toho vylezlo. Vlastně jsem tak trochu doufal, že si toho nějaký javascriptový programátor všimne, zhrozí se a napíše to znovu a líp :).

Pokorně musím uznat, že na frameworku nezávislá verze od @redhead, bude pravděpodobně lepší.

redhead
Člen | 1313
+
0
-

@22: je to tam

ic
Člen | 430
+
0
-

tato verze: https://gist.github.com/…6410b6430ca9
s jQuery 1.6.4.min,
mě ale háže chybu

Error: Nette is not defined
Source File: http://localhost/Forms-example/netteForms.jQuery.js
Line: 468
pave.kucera
Člen | 122
+
0
-

@ic: Tenhle validátor mi unikl, zkus to prosím teď – https://gist.github.com/1224180

ic
Člen | 430
+
0
-

pave.kucera napsal(a):

@ic: Tenhle validátor mi unikl, zkus to prosím teď – https://gist.github.com/1224180

Taky to není ideální… vytváří se tam někde (chybová konzole ji najde v jQuery knihovně) nekonečná smyčka než to FF utne s Error: too much recursion například u toogle.

pave.kucera
Člen | 122
+
0
-

@ic: dotyčné pravidlo jsem nikdy nepoužil, mohl by jsi mi prosím poslat definici formuláře, ať se podívám jak to má vlastně fungovat? :)

ic
Člen | 430
+
0
-

Zkoušel jsem to na běžném basic-example.php z distribuce examples/Forms ( https://github.com/…master/Forms ). Jediná změna, že jsem přidal <script src="http://code.jquery.com/jquery-1.6.4.min.js"></script> a vyměnil staré netteForms.js za nové s jQuery .

Editoval ic (20. 9. 2011 10:40)

pave.kucera
Člen | 122
+
0
-

Opraveno, odzkoušeno, daný příklad už nevyhazuje žádnou chybu. Teď jen váhám, jestli zobrazovat, stejně jako v původním kódu, vždy jen jeden error, anebo všechny najednou, tak jak se to děje teď. Co by vám vyhovovalo víc?

hrach
Člen | 1838
+
0
-

Určitě jen jeden error.

ic
Člen | 430
+
0
-

pave.kucera napsal(a):

Opraveno, odzkoušeno, daný příklad už nevyhazuje žádnou chybu. Teď jen váhám, jestli zobrazovat, stejně jako v původním kódu, vždy jen jeden error, anebo všechny najednou, tak jak se to děje teď. Co by vám vyhovovalo víc?

Perfektní… už to šlape jako hodinky.

Errors bych tam klidně nechal všechny… ostatně vždy je tu možnost je snadno skrýt pomocí CSS.
To mě ale přivádí na problém se stylováním li elementu, který má od jQuery napevno nastavený style="display:block", tomu se dá zabránit zakomentováním error.hide(); z řádku 353 ( https://gist.github.com/1224180#L353 ), ale člověk tím přijde o animaci.

Editoval ic (20. 9. 2011 14:06)

iguana007
Člen | 970
+
0
-

Asi jsem narazil na bug a to, že pokud odešlu prázdný form s povinnými selecty a následně je vyplním, tak mi tam ta validační hláška u nich zůstane viset až do doby něž odešlu form.

bojovyletoun
Člen | 667
+
0
-

ahoj, koukna to je tam pár rad jak psát lépe v jquery

(viděl jsem tam nějaké konstrukce jako $(this) )

Editoval bojovyletoun (23. 9. 2011 13:52)

Rampus
Člen | 39
+
0
-

Zkusil jsem použít tuto validaci a narazil jsem na násldující problém.

Potřebuju na inputu vlastní „onKeyUp“, ale validator mi to přepíše svým handlerem.
Dá se nějak udělat, aby se vykonali oba handlery, jak můj, tak z validátoru? Zatím jsem nechtěl zasahovat do kodu validatoru.

Díky