Autor | Zpráva | ||
---|---|---|---|
Matyáš Profil |
Dobrý den,
Potřeboval bych poradit s tímto: Mám klasický formulář <form> s <input type="text/password..."> a před jeho odesláním na server bych potřeboval javascriptem zkontrolovat, zda pole nejsou prázdná a pokud v nich jsou údaje splňující kritéria. Pokud ne, zrušit odesílání a zobrazit alert . Aby nebyl zbyteně zatěžován server.
Šlo by pomocí form action spustit javascript?
Děkuji! |
||
_es Profil |
#2 · Zasláno: 30. 12. 2014, 20:21:06
<form onsubmit="return kontrola()" kontrola vráti false , bude odoslanie formulára zrušené.
|
||
Marschmallow Profil |
#3 · Zasláno: 30. 12. 2014, 20:28:34
Matyáš:
Přečti si tenhle článek. |
||
pcmanik Profil |
Matyáš:
Na formulárových prvkov môžeš taktiež využiť atribút required, ktorý v podporovaných prehliadačoch (IE>9) zablokuje samotné odoslanie formulára a upozorní užívateľa že pole je povinné. Taktiež môžes využit iné typy inputu - email, number atď. Pričom v nepodporovaných prehliadačoch sa degradúju na klasický input type text. Samozrejme nezabúdni na validáciu na strane servera. |
||
_es Profil |
#5 · Zasláno: 30. 12. 2014, 20:32:34
[#3] Marschmallow:
Čo má s dotazom spoločný ten „článok“? Ešte k tomu z takého nedôveryhodného zdroja. |
||
Matyáš Profil |
#6 · Zasláno: 30. 12. 2014, 20:42:44
Děkuji! Vyzkouším to.
|
||
Časová prodleva: 4 dny
|
|||
Matyáš Profil |
#7 · Zasláno: 3. 1. 2015, 09:51:43
_es:
Toto samozřejmě funguje, ale zajímalo by mě, jestli je možné tímto způsobem volat funkci z externího .js souboru. Děkuji! |
||
Taps Profil |
Matyáš:
ano, mozne to je, je vsak potreba externi soubor nacist do dane stranky, viz. Začlenění skriptu do stránky |
||
Matyáš Profil |
#9 · Zasláno: 3. 1. 2015, 11:34:08
Jasně, nevím, proč mě to nenapadlo.
Ještě jedna otázka: Pokud tímto kódem testuji délku uživatelského jména, délku hesla při registraci, a dejme tomu, že by na tom později něco záleželo, dal by se tento javascript obejít? Dosud jsem to řešil pomocí PHP, což je myslím zbytečné zatěžování serveru. Nemyslíte si, že by se javascript dal obejít jednoduššeji, než PHP? |
||
Marschmallow Profil |
#10 · Zasláno: 3. 1. 2015, 11:37:05
Matyáš:
Klient (uživatel) si může JavaScript kdykoliv vypnout a pak by tedy kontrola nefungovala. |
||
Taps Profil |
#11 · Zasláno: 3. 1. 2015, 11:42:01
Matyáš:
Nejlépe je ošetřit délku uživatelského jména jak na úrovni javascriptu tak na úrovni PHP (pro případ, že by si uživatel vypnul javascript) |
||
Matyáš Profil |
#12 · Zasláno: 3. 1. 2015, 19:52:43
Nevíte, v čem může být problém, když IE 11 vůbec JS nespustí a hned formulář odešle?
Vyzkoušeno odpojením od internetu, kdy Mozila zobrazovala hlášky, zatímco IE chtěl přesměrovat. |
||
Taps Profil |
#13 · Zasláno: 3. 1. 2015, 20:11:17
Matyáš:
ukaž kód |
||
Matyáš Profil |
<script type="text/javascript" src="funkce.js"></script> <script type="text/javascript"> function kontrola() { if(uzivatelske_jmeno.value != "" && heslo.value != "") { if(kontrola_uzivatelske_jmeno(uzivatelske_jmeno.value) && heslo.value.length >= 5 && heslo.value.length <= 20) { return true; } else {alert("Uživatelské jméno, nebo heslo neodpovídá požadavkům na délku."); return false;} } else {alert("Musíte vyplnit všechny položky"); return false;} } </script> <form method="POST" onsubmit="return kontrola()" action="prihlaseni.php"> V souboru funkce.js je funkce kontrola_uzivatelske_jmeno. |
||
Fisir Profil |
#15 · Zasláno: 3. 1. 2015, 20:55:11
Reaguji na Matyáše:
To na řádku 12 má být co? |
||
Matyáš Profil |
#16 · Zasláno: 4. 1. 2015, 20:33:00
Předchozí zprávu jsem upravil, ta chyba vznikla zřejmě vkládáním do fóra, na serveru nic takového nebylo.
|
||
Taps Profil |
#17 · Zasláno: 4. 1. 2015, 20:54:32
Matyáš:
a co obsahuje tato funkce? kontrola_uzivatelske_jmeno |
||
Matyáš Profil |
#18 · Zasláno: 5. 1. 2015, 06:45:03
function kontrola_uzivatelske_jmeno(uzivatelske_jmeno) { if(uzivatelske_jmeno.length >= 3 && uzivatelske_jmeno.length <= 15) return true; else return false; } |
||
Taps Profil |
#19 · Zasláno: 5. 1. 2015, 07:14:34
Matyáš:
Funkční ukázka http://kod.djpw.cz/jgjb |
||
Matyáš Profil |
Aha, bylo potřeba doplnit vstupní hodnotu
this k funkci kontrola . A pak samozřejmě adresování např. form.uzivatelske_jmeno.value...
Je to zajímavé že to Mozila brala a IE ne, nicméně, funguje to. Děkuji! |
||
Časová prodleva: 10 let
|
0