Autor | Zpráva | ||
---|---|---|---|
Roman99 Profil |
Při zpracování BB značek došlo k samovolnému sežrání celého příspěvku. Pardon.
Ahoj, v rámci učení si vytvářím nějaké testy. V PHP mi to fachá, ale kontrola formuláře pomocí javascriptu nefachá. Můžete někdo poradit proč mi to nefachá??? :) html: <form name="form" action="pokus2.php" method="POST"> <table cellpadding = "10px" cellspacing = "10px" > <tr> <td width = "300"> <b>1) Hlavní město ČR je:</b><br> <input type="radio" name="cr" value="1"> Praha <br> <input type="radio" name="cr" value="2"> Berlín<br> <input type="radio" name="cr" value="3"> Paříž <br><br> <b>2) Hlavní město SR je:</b><br> <input type="radio" name="sr" value="2"> Praha <br> <input type="radio" name="sr" value="1"> Bratislava<br> <input type="radio" name="sr" value="3"> Madrid <br><br> <b>3) Hlavní město Polska je:</b><br> <input type="radio" name="pol" value="2"> Řím <br> <input type="radio" name="pol" value="3"> Bern<br> <input type="radio" name="pol" value="1"> Waršava <br><br> <b>4) Hlavní město Rumunska je:</b><br> <input type="radio" name="rum" value="1"> Bukurešť <br> <input type="radio" name="rum" value="3"> Atény<br> <input type="radio" name="rum" value="2"> Lublaň <br><br> <b>5) Hlavní město Bulharska je:</b><br> <input type="radio" name="bul" value="3"> Podgorica <br> <input type="radio" name="bul" value="2"> Sarajevo<br> <input type="radio" name="bul" value="1"> Sofia <br><br> </td> <td> <br> <b>6) Hlavní město Albánie je:</b><br> <input type="radio" name="alb" value="1"> Tirana <br> <input type="radio" name="alb" value="2"> Podgorica<br> <input type="radio" name="alb" value="3"> Helsinki <br><br> <b>7) Hlavní město Běloruska je:</b><br> <input type="radio" name="belo" value="2"> Moskva <br> <input type="radio" name="belo" value="1"> Minsk<br> <input type="radio" name="belo" value="3"> Madrid <br><br> <b>8) Hlavní město Dánska je:</b><br> <input type="radio" name="dan" value="2"> Berlín <br> <input type="radio" name="dan" value="3"> Reykjavík<br> <input type="radio" name="dan" value="1"> Kodaň <br><br> <b>9) Hlavní město Islandu je:</b><br> <input type="radio" name="is" value="1"> Reykjavík <br> <input type="radio" name="is" value="3"> Islandia<br> <input type="radio" name="is" value="2"> Lublaň <br><br> <b>10) Hlavní město Velké Británie je:</b><br> <input type="radio" name="vb" value="3"> Dublin <br> <input type="radio" name="vb" value="2"> Oslo<br> <input type="radio" name="vb" value="1"> Londýn <br><br> <input type="submit" onClick="over();"> </td> </tr> </table> </form> <script> function form(){ if(document.form.cr.value=="") window.alert("nevyplnil jste hlavní město ČR!"); else if(document.form.sr.value=="") window.alert("nevyplnil jste hlavní město SR!"); else if(document.form.pol.value=="") window.alert("nevyplnil jste hlavní město Polska!"); else if(document.form.rum.value=="") window.alert("nevyplnil jste hlavní město Rumunska!"); else if(document.form.bul.value=="") window.alert("nevyplnil jste hlavní město Bulharska!"); else if(document.form.alb.value=="") window.alert("nevyplnil jste hlavní město Albánie!"); else if(document.form.belo.value=="") window.alert("nevyplnil jste hlavní město Běloruska!"); else if(document.form.dan.value=="") window.alert("nevyplnil jste hlavní město Dánska!"); else if(document.form.is.value=="") window.alert("nevyplnil jste hlavní město Islandu!"); else if(document.form.vb.value=="") window.alert("nevyplnil jste hlavní město Velké Británie!"); else (document.form.cr.value=="" && document.form.sr.value=="" && document.form.pol.value=="" && document.form.rum.value=="" && document.form.bul.value=="" && document.form.alb.value=="" && document.form.belo.value=="" && document.form.dan.value=="" && document.form.is.value=="" && document.form.vb.value=="") window.alert("Co jéé??? Nic jste nevyplnil!"); } </script> Jo, a nefachá to ani takhle: <script> function over(){ if(document.form.cr.checked==false) window.alert("nevyplnil jste hlavní město ČR!"); else if(document.form.sr.checked==false) window.alert("nevyplnil jste hlavní město SR!"); else if(document.form.pol.checked==false) window.alert("nevyplnil jste hlavní město Polska!"); else if(document.form.rum.checked==false) window.alert("nevyplnil jste hlavní město Rumunska!"); else if(document.form.bul.checked==false) window.alert("nevyplnil jste hlavní město Bulharska!"); else if(document.form.alb.checked==false) window.alert("nevyplnil jste hlavní město Albánie!"); else if(document.form.belo.checked==false) window.alert("nevyplnil jste hlavní město Běloruska!"); else if(document.form.dan.checked==false) window.alert("nevyplnil jste hlavní město Dánska!"); else if(document.form.is.checked==false) window.alert("nevyplnil jste hlavní město Islandu!"); else if(document.form.vb.checked==false) window.alert("nevyplnil jste hlavní město Velké Británie!"); else (document.form.cr.value=="" && document.form.sr.value=="" && document.form.pol.value=="" && document.form.rum.value=="" && document.form.bul.value=="" && document.form.alb.value=="" && document.form.belo.value=="" && document.form.dan.value=="" && document.form.is.value=="" && document.form.vb.value=="") window.alert("Co jéé??? Nic jste nevyplnil!"); } </script> |
||
_es Profil |
Roman99:
A skadiaľ si to celé okopíroval? Prečo by to malo niečo robiť? V JS definuješ funkciu form , no nič s ňou nerobíš.
„kontrola formuláře pomocí javascriptu nefachá.“ Kde si si naštudoval, ako by mala taká kontrola pomocou JS vyzerať? A keď si to niekde nájdeš, nazvi funkciu namiesto form trebárs kontrola , lebo to môže v istých situáciách kolidovať s objektom formulára.
|
||
Chamurappi Profil |
#3 · Zasláno: 5. 5. 2014, 21:11:00
Reaguji na Romana99:
Toho, že máš funkci nazvanou form a voláš funkci over , sis asi už všimnul.
„ if(document.form.cr.value=="") “
Takhle to bohužel nefunguje. Na document.form sice jsou objekty reprezentující formulářové prvky, ale každý <input type="radio"> je přítomen individuálně. V document.form.cr je tedy kolekce elementů (de facto pole). V document.form.cr[0] je první, v document.form.cr[1] druhý, atd. — a každý z nich samozřejmě má i svoji value . Potřebuješ kontrolovat checked a projet pokaždé všechny tři možnosti. Na tvém místě bych si na to vzal pole obsahující name a dvojici cyklů, z nichž jeden by procházel přes tyto názvy v poli a druhý uvnitř toho prvního přes ty tři možnosti.
„ cellpadding = "10px" cellspacing = "10px" “
Do HTML atributů se px nepíše.
|
||
_es Profil |
#4 · Zasláno: 5. 5. 2014, 21:18:48
Roman99 [#1]:
Okrem toho, že ti tam chýbajú úplné základy celej kontroly (pozri si v nejakej vzorovej ukážke, kde je príkaz return ), by sa mala radšej použiť udalosť formulára onsubmit .
|
||
Roman99 Profil |
#5 · Zasláno: 6. 5. 2014, 14:51:59 · Upravil/a: Roman99
_es:
Myslím, že to bylo z těhlech stránek http://www.tvorba-webu.cz/javascript/checked.php _es, Chamurappi: Díky moc za odpovědi. Teď šrotím PHP, ale teorie bylo dost, potřebuji názorný příklady, tak si dělám ty testy. Z HTML jsem trochu vypadl, protože CSS externě má své kouzlo, takže jsem trochu pozapomínal. Takovou ochranu v javascriptu potřebuji nato, že když někdo nějaké políčko nezaškrtne, vyskočí hláška ať to doplní. Budu zkoušet a zase se ozvu. Díkes. Roman |
||
_es Profil |
#6 · Zasláno: 6. 5. 2014, 23:10:18
Roman99:
„Myslím, že to bylo z těhlech stránek“ No tak si natrafil na zlý učebný príklad, skús nájsť iný. Obvykle je „pod kontrolou pomocou JS“ myslené to, že ak formulár kontrole nevyhovuje, tak nebude odoslaný a návštevník je vyzvaný na zadanie správnych hodnôt do formulára. |
||
jenikkozak Profil |
#7 · Zasláno: 7. 5. 2014, 12:24:46
Roman99:
> Myslím, že to bylo z těhlech stránek > ht>tp://w>ww.tvorba-webu.cz/javascript/checked.php Ten web obsahuje spoustu zavádějících informací, neupozorňuje na nevýhodnost určitých postupů a v příkladech je mnohdy použit podivný způsob zápisu. Nedá se to doporučit jako dobrý výukový materiál. |
||
Časová prodleva: 11 let
|
0