Starší komentáře ke článku: ASP.NET - schvalovací prvky

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: David Mach

Datum vložení: 20.6.2002 13:36:33

V Opeře se příklad zobrazuje špatně - vstupní políčka jsou zarovnaná nahoře.

Avatar

Autor komentáře: kenguru

Datum vložení: 20.6.2002 15:18:50

V Mozille to nefunguje vobec. Formular sa sice zobrazi, ale kontrola pocas vyplnovania neide.

Avatar

Autor komentáře: David Mach

Datum vložení: 20.6.2002 15:45:13

Jakou mas verzi? V Mozille 1.0 mi to funguje.

Zajimave je, ze jak Mozilla, tak i Opera pri stisku tlacitka <B>Odeslat</B> kontaktuji server, zatimco IE ani nemrkne a rovnou zobrazi chybova hlaseni.

V IE se navic okolo spodnich chybovych hlasek zobrazuje ram, zatimco u Mozilly a Opery nikoli.

Avatar

Autor komentáře: Ondrej Kopp

Datum vložení: 20.6.2002 15:57:05

Existují dva způsoby validace

1. Na straně klienta
2. Na straně serveru

Zatimco validace na straně serveru poběži vždy (po kliknutí na tlačítko odeslat) tak validace na straně klienta je závislá na podpoře DHTML a JavaSriptu.

Takže v klientech jenž toto nepodporují máte smůlu. Validace na straně klienta je rychlejší (neprobíhá posílaní dat sem a tam) ale z výše uvedených důvodů je lepší se pojistit validací i na straně serveru.

Avatar

Autor komentáře: kenguru

Datum vložení: 20.6.2002 20:25:09

Mam verziu 1.0 (final - build id:2002053012) pre win32. Overovanie vstupnych udajov jednoducho nejde. Nejde to ani v Mozille 1.0 pod Linuxom.

Avatar

Autor komentáře: Ondřej Kopp

Datum vložení: 20.6.2002 20:59:37

Overovani pri vyplnovani Vam skutecne nepujde.... zkousel jsem ruzne browsery a chodilo mi to jen v MSIE 4 a vyse

Avatar

Autor komentáře: miroslav.kucera

Datum vložení: 20.6.2002 22:18:12

Overovani funguje v IE 5.5 pouze do te chvile, nez neco vlozite po opraveni do posledni polozky, pak to hodi chybu JavaScriptu.

Avatar

Autor komentáře: Ondřej Kopp

Datum vložení: 21.6.2002 7:53:02

Specialně kvůli tobě jsem zkoušel ten formulář jestě jednou a specialne v IE 5.5. Formular sem vyplnil a zadna chyba mi nevyskocila. Nechapu to jak je to mozne...
Nicméně pokud tvrdíš, žeto hází chybu asi to bude pravda, neznam pripady, ze by jsi si chyby vymyšlel

Avatar

Autor komentáře: miroslav.kucera

Datum vložení: 21.6.2002 9:01:31

Mas prazdny formular, kliknes na Odeslat. Vsude se cervene vypise, co vsechno chybi a co se musi vyplnit. Do posledniho policka (Cislo delitelne)... vlozim nejake pismena, treba aa. Kliknu do cervene oramovaneho prostoru pod tlacitkem a hup - chyba JavaScriptu.

Presneji:
Radek: 55
Znak: 7
Chyba: Neshoda typu: '[string: "aa"]'
Kod: 0
Adresa URL: <a href='http://interval.aspx.cz/priklady/naiman/valid/form.aspx' target='_blank'>http://interval.aspx.cz/priklady/naiman/valid/form.aspx</a>

Jinak se omluovam, ta chyba neni v IE 5.5, ale v IE 6.0.

Avatar

Autor komentáře: Ondřej Kopp

Datum vložení: 21.6.2002 9:19:27

No jo je to tak, ale to chodi chybu vsude.... Ve skriptu je chybicka - neni pocitano s tim, ze tam hodi nekdo neco jineho nez numero. Jeste ke vsemu to neni JavaScript ale VBScript

spravne by mel vypadat takto

<script language="vbscript">
Sub ValidateNumber(source, arguments)
On error resume next
If (arguments.Value mod 5) = 0 Then
arguments.IsValid = true
Else
arguments.IsValid = false
End If
If Err.Number<>0 Then arguments.IsValid = false
End Sub
</script>

Avatar

Autor komentáře: miroslav.kucera

Datum vložení: 21.6.2002 11:44:35

Mno tak mi potom neni jasne, k cemu ten clanek byl, kdyz kontrola, o ktere clanek je, vlastne nefunguje, kdyz tam nekdo hodi pismena misto cisel :)

Avatar

Autor komentáře: Ondřej Kopp

Datum vložení: 21.6.2002 12:25:42

Mno to si špatně pochopil... článek je o schvalovacich komponenytách v ASP.NET. to jak se doplní příslušné testy na cokoliv je věc programátora... Zde uvedený kód je jen pro ilustraci....

To ale člověk, který o programování neví vůbec nic neochopí...

Avatar

Autor komentáře: miroslav.kucera

Datum vložení: 21.6.2002 13:35:17

Mno, ty jsi spatne pochopil muj prispevek.

Proc neni u posledni polozky pro Cislo delitelne peti kontrola na vlozeni cisel, kdyz ta kontrola je FUNKCNI napriklad u Veku (pri vlozeni cehokoli jineho nez cisla) ci emailu (format emailu)?

Kod je sice pro ilustraci, ale to prece neni duvod kontrolu na cislä vlozit do pole pro Vek, ale nikoli uz do pole pro vlozeni Cisla delitelneho peti.

Avatar

Autor komentáře: miroslav.kucera

Datum vložení: 21.6.2002 13:37:15

Abych upresnil svuj prispevek - ta kontrola na vlozeni cisel tam je, protoze vypise, ze cislo neni delitelne peti, ale soucasne to hodi chybu JavaScriptu. U policka pro Vek se to nestava.

Takze, abych to shnul - zajimavy clanek, zajimava ukazka, ktera ale neni plne funkcni, protoze obsahuje nepochopitelnou chybu.

Avatar

Autor komentáře: Ondřej Kopp

Datum vložení: 21.6.2002 14:03:33

Chyba není vůbec nepochopitelná (pro programatora)... Pro věk a číslo dělitelné pěti jsou použity různé metody kontroly... To že u čísla dělitelného peti není nejdrive kontrala, zda je tam cislo je chyba, ale je pochopitelná.....
Přečti si pořádně článek a třeba to taky pochopís

Avatar

Autor komentáře: miroslav.kucera

Datum vložení: 21.6.2002 14:49:34

Kontrola aplikace se nedela pro programatory, aby si mohli rikat, jak jsou vlastne dobri, ze to dokazali naprogramovat, ale pro uzivatele, aby vlozili ty spravne udaje a nevkladali blbosti. No, ale kdyz jako programtor rikas, ze chyba v JavaScriptu, ktera NAPROSTO ZMEMOZNI ODESLANI OBSAHU FORMULARE, je pochopitelna, pak jsem rad, ze nejsem programatorem.

To vis, mi obycejni uzivatele vubec nechapeme, jak nekdo muze udelat aplikaci s kontrolou vlozenych udaju, kdy tato kontrola spolehlive zajisti, aby obsah formulare nesel vubec odeslat a vydavat to za pochopitelne a jeste takovy postup obhajovat... :))

BTW: neznam mnoho programatoru, ktery by udelal kontrolu na to, zdali je cislo delitelne peti, a uz tam vubec nevlozili dalsi kontrolu, zdali je do formulare vlozeno cislo. Podle me je to naprosto amaterska chyba.

Smyslem vsech aplikaci je, aby fungovaly spravne, coz se v tomto pripade rici neda, a je uplne jedno, zdali je to chyba pochopitelna nebo ne, vysleldek je tentyz - aplikace nefunguje.

Avatar

Autor komentáře: Ondřej Kopp

Datum vložení: 21.6.2002 15:35:54

Jasne mash pravdu... smyslem aplikaci by skutecne melo byt aby fungovali spravne.....

Jelikož se jedna jen o ukazkový příklad lze tuto chybu, ktera je vsak neomluvitelna v případě ostre aplikace, omluvit.
Každopádně by to mělo být ošetřeno až do konce, nebot základem je než začnu něco tvořit s nějakou proměnnou (at už s číslem nebo čímkoliv jiným) zjistit zda v proměnnéje skutečně to co očekávám - viz <a href='http://www.interval.cz/clanek.asp?id=603' target='_blank'>http://www.interval.cz/clanek.asp?id=603</a> a tím předejít vznuku chyby a nebo pak je třeba ošetřit následky <a href='http://www.interval.cz/clanek.asp?id=264' target='_blank'>http://www.interval.cz/clanek.asp?id=264</a> a zabránit tak pádu aplikace.

Avatar

Autor komentáře: OP

Datum vložení: 21.6.2002 15:54:36

Musím se přidat, i když jsem programátorem amatérem. Asi Ti nic neříká slovní spojení "konzistence dat". Programovat na webu je podobné jako programovat databázi. Zapisuje-li někdo nějaká data ve formuláři, pak se většinou dostanou do databáze. A už jsi někdy viděl nekonzistetní databázi? Nedávno jsem jednu převzal, abych nad ni poskládal aplikaci a chtělo se mi brečet. Podle mého názoru musí programátor vždy počítat s horší variantou uživatele. Na vysoké škole dokonce učí intuitivní ovládání programů. Takže je v zájmu programátora, aby se mu do databáze dostaly jen správné údaje

Avatar

Autor komentáře: David Mach

Datum vložení: 21.6.2002 11:53:47

Zajímalo by mě, jestli tato situace nastala díky nedokonalosti autorova kódu nebo tím, že VS .NET prostě zase generuje kód jenom pro IE... :-/

Avatar

Autor komentáře: Ondřej Kopp

Datum vložení: 21.6.2002 12:26:33

Sem vepište svůj příspěvek.

Avatar

Autor komentáře: Ondřej Kopp

Datum vložení: 21.6.2002 12:27:39

Bohužel VS.NET občas vygeneruje kód, který nefunguje ani v IE :-(

Avatar

Autor komentáře: Michal Naiman

Datum vložení: 24.6.2002 19:49:18

Dobrý den, dovolim si zareagovat na Vaše příspěvky trochu hromadně, dříve to nešlo, nebyl jsem v dosahu internetu. Samozřejmě máte pravdu s tím, že by v té validaci na straně klienta mělo být ošetření i na to, zda zadávaná proměnná je číslo či znak. Článek ovšem slouží jako ilustrace pro začínající programátory, aby byli schopni si do svých projektů takovou validaci udělat. Zrovna tak bych tam mohl ošetřovat kupu jiných věcí, které jsou popsané v jiných článcích, ale tím by se tento pouze znepřehlednil o co v něm původně vlastně šlo. K bodu nefunkčnost v některých prohlížečích. Pokud zjistíte, že validace na straně klienta Vám v prohlížečích, které Vy musíte nutně podporovat, tak nezbývá nic jiného něž provádět validaci na straně serveru. Tam tyto problémy odpadají a zavislost na klientovy není. V článku je také napsano že vaidace na straně klienta je pouze takové "zpestření" Vaší aplikace a je ukázan postup, jak ji docílit. Nejvíce kontrolórské práce však stejně zůstává na straně serveru. A mimochodem kód negeneruje VS.NET, ale .NET framework ;)

Avatar

Autor komentáře: Tomáš Kouba

Datum vložení: 1.2.2003 12:17:01

Nejdříve bych chtěl poděkovat za článek, který mě něco naučil a nemusel jsem za něj nic zaplatit :-). Asi si to mnozí neuvědomují, ale to že umím víc než druzí je majetek o který se někteří lidé rozdělí.
Pokud se však týká dokonalosti programu, tak jako reakci na připomínky Miroslava Kučery, tak jako programátor bych ve skutečné aplikaci nepovolil například zadání emailu "2@c.aaaaaa". Adresa je zjevně nesmyslná, regulární výraz kontrolující platnost top-level domény by však byl podstatně delší. Dala by se taky zkontrolovat platnost MX záznamu v DNS. Ve věku nejde zadat desetinné číslo i přes to, že je v rozsahu 1 až 100. Stačí opravit popisek na celé číslo. A co má dělat takový 101letý dědeček? Má smůlu, u nás v internetovém obchodě nenakoupí, zato kojenec ano. Takže až budu psát program zabere mi jako vždy nejvíce času kontrola vstupů od uživatele a ošetření chyb, ale od příkladu očekávám jednoduchost, ne použitelnou aplikaci.

Avatar

Autor komentáře: Jméno a příjmení

Datum vložení: 10.9.2003 8:42:19

Zdravíčko,
chci jen poděkovat za tento článek jelikož mi opravdu pomohl. Začínám se učit a takových článku jako je tento bych bral víc. Jo a jedna věc k těm lidem , který to kritizujou, že nejde tohle a tamto. POŘÁDNĚ SI NEJDŘÍV PŘEČTĚTE ČLÁNEK!!! Článek byl totiž o použití jednotlivých možností schvalovacích prvků. Takže vždy na jednu možnost jedna ukázka, NIKOLIV jedna ukázka na všechny možnosti. Když je ukázka na rozsah tak nebudu do ní přeci cpát ukázku na správný tvar nebo jestli je položka vyplněná.
Toť můj názor.
Máucta LeeT

Zpět na článek | Úvodní stránka Interval.cz