Autor | Zpráva | ||
---|---|---|---|
joe Profil |
#1 · Zasláno: 17. 4. 2008, 18:59:05 · Upravil/a: joe
Zdravím,
Mám problém, který vůbec nechapu. Bohužel to mám v projektu, který mám jen na localhostu, takže nemohu ukázat. Ale mám funkci podobnou této: function check(form) { if(form.username.value == "") { // doplněno viz. Chamurappi alert("..."); form.username.setFocus(); return false; } } a pak v HTML: <form ... onsubmit="return check(this);"> </form> ----------------------- Problém je ten, že když nic do toho inputu nezadám, zobrazí se mi MessageBox (alert), ale formulář se po odkliknutí odešle. Když před ty podmínky dám do té funkce return false; tak se nic nestane a formulář se neodesílá, tak kde je problém? Díky |
||
Chamurappi Profil |
#2 · Zasláno: 17. 4. 2008, 19:06:14
Reaguji na joa:
Funkce nevrací false, protože form.username není rovno prázdnému řetězci. Je to totiž objekt, pravděpodobně <input>. Prázdnému řetězci se může rovnat až jeho value. |
||
joe Profil |
#3 · Zasláno: 17. 4. 2008, 19:08:51 · Upravil/a: joe
Chamurappi
Díky za upozornění, v js samozřejmě value mám a stejně se odesílá. |
||
Chamurappi Profil |
#4 · Zasláno: 17. 4. 2008, 20:56:45
Reaguji na joa:
„form.username.setFocus();“ Nemělo by to být jen form.username.focus()? Tohle není VB. |
||
MagicPowa Profil |
#5 · Zasláno: 17. 4. 2008, 21:17:23
<!--
form_submitted=false; function ValidateForm(formular) { if(formular.UZIVJMENO.value == '') { alert('....') formular.UZIVJMENO.focus() form_submitted=false return false return true } } --> html do formu: onsubmit="return ValidateForm(this);" ---------------------------------------------------------------------- - tohle mám odzkoušení a funguje to tak jak má |
||
joe Profil |
#6 · Zasláno: 17. 4. 2008, 21:28:56 · Upravil/a: joe
Chamurappi
Ježišmarjá dík :-) Já ve VB už moc nedělám, ale tohle jsem nečekal. Zajímavý, že mi ani jeden prohlížeč nehlásil chybu. Díky moc. MagicPowa Tak to se mi moc nezdá, nechápu proč je tam proměnná form_submitted? Jedině, že bys pak ještě kontroloval, jestli je true/false, třeba to je jen ukázka, pak to chápu. Ale proč máš return false a následně return true, to nechápu. Ten první return hned ukončí funkci. |
||
peta Profil |
#7 · Zasláno: 18. 4. 2008, 08:37:28
joe
"Zajímavý, že mi ani jeden prohlížeč nehlásil chybu." Tak to pekne kecas, co tahle hlaska z JS konzoly Firefoxu? <script> function check(form) { if(form.username.value == "") { // doplněno viz. Chamurappi alert("..."); form.username.setFocus(); return false; } } </script> <form action=# onsubmit="return check(this);"> <input name=username type=text> <input type=submit> </form> Chyba: form.username.setFocus is not a function Zdrojový soubor: file:///C:/Documents%20and%20Settings/webmaster/Plocha/xxx.htm?# Řádek: 6 A co treba IE a jeho JS konzola? radek 6: Objekt tuto vlastnost nepodporuje. (nastroje - moznosti internetu - upresnit - zobrazovat oznameni pri chybe ve skriptu) |
||
joe Profil |
#8 · Zasláno: 18. 4. 2008, 10:01:35
peta
Když napíšu, že nezobrazovalo, tak nezobrazovalo. Protože po odeslání formuláře došlo k přesměrování na stránku, kde byl js zase v pořádku. Každopádně to je už vyřešené. |
||
peta Profil |
#9 · Zasláno: 19. 4. 2008, 20:21:56
joe
Na tom vubec nezalezi, zda tam je neco v poradku. Kdyz si tu konzolu zapnes v IE (viz uvedeny postup) a rozkliknes ve FF, tak tu chybu 100% zobrazi. Pokud potom neco bezi, tak to prida jako dalsi chybu v poradi. Zkratka je treba umet konzolu pouzivat. Default je to v IE vyskrtnute, aby to neotravovalo uzivatele, ale ve FF staci jen otevrit okenko JS konzoly a dat F5, nic vic. Ale tak ok. Ja jen, ze priste ti to stejne napisu, jako vsem, co hlasi js konzola a ze chci odkaz na stranku. |
||
joe Profil |
#10 · Zasláno: 19. 4. 2008, 21:27:09
peta
Tak dobře, asi je to tak jak říkáš. Mám nastaveno zobrazovaní chyb js v IE, resp. mi je to ukazuje. Ale tentokrát se mi žádná chyba neobjevila, nevím jak je to možné. Každopádně až budu mít zase takový podobný problém s js, vzpomenu si na tvůj návod ;-) Ale jak jsem psal, ted už je to stará záležitost naštěstí. Když koukám do kódu dlouho a nevím kde je chyba, radší ho ukážu jinému, ten tu chybu najde. Že se to způsobuje právě ta funkce focus() by mě nenapadlo, protože znám jiný zápis funkce z VB. Ale díky ti samozřejmě také patří! :-) |
||
peta Profil |
#11 · Zasláno: 20. 4. 2008, 20:38:05
joe
O diky mi neslo, spis o postup v krizi. Hlavne, kdyz IE nic nehlasi, zkusit FF a jeho konzolu, na tu je spoleh. Dat to do fora je tez reseni. Idealne pridat odkaz na stranku, protoze muj radek 6 muze byt tvuj radek 32. |
||
joe Profil |
#12 · Zasláno: 20. 4. 2008, 21:39:07
peta
Chapu, vsak jsem to ve FF zkoušel taky, firebug mám taky... protoze muj radek 6 muze byt tvuj radek 32. To je snad jasné, nejsem zase takový amatér jak myslíš ;-) |
||
Časová prodleva: 16 let
|
0