netteForms.js přepsané do jQuery
- pave.kucera
- Člen | 122
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ě :).
- redhead
- Člen | 1313
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)
- pave.kucera
- Člen | 122
@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ší.
- ic
- Člen | 430
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
@ic: Tenhle validátor mi unikl, zkus to prosím teď – https://gist.github.com/1224180
- ic
- Člen | 430
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
@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
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
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?
- ic
- Člen | 430
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)
- bojovyletoun
- Člen | 667
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
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