Autor | Zpráva | ||
---|---|---|---|
MartaBrno Profil * |
#1 · Zasláno: 16. 9. 2015, 14:27:01
Zdravím, chtěla bych otravný přihlašovací PROMPT, který bude i po zadání mezerníku(ů) znovu načítat stránku.
např. else if (chCod == 8 ) location.reload(true); mi dělá pěknou neplechu.... var jmeno = prompt("Vaše jméno, prosím:",""); if (jmeno == null)location.reload(true); else if (chCod = 8 ) location.reload(true); else if (jmeno == "")location.reload(true); else document.write("Vítejte "+jmeno); |
||
Camo Profil |
MartaBrno:
Máš tam chCode = 8. A nikde nevidíme že by si tú premennú chCode niekde nastavila. Nechceš náhodou jednoducho zisťovať či zadané pole obsahujú iba medzery? To použi jmeno.match(/^[ ]*$/g) |
||
Taps Profil |
#3 · Zasláno: 16. 9. 2015, 15:24:52
MartaBrno:
ukázka http://kod.djpw.cz/jeqb |
||
MartaBrno Profil * |
#4 · Zasláno: 17. 9. 2015, 13:18:08
Definovala jsem chCod, ale asi nějak špatně ??
var jmeno = prompt("Vaše jméno, prosím:",""); var chCod = ('charCode' in event) ? event.charCode : event.keyCode; return (chCod < 0 || chCod > 64 ); if (jmeno == charCode) else if (jmeno == "")location.reload(true); else if (jmeno == null chCod)location.reload(true); else document.write("Vítejte "+jmeno); |
||
Camo Profil |
MartaBrno:
To je úplný chaos. Vyzerá to že chceš otestovať či jmeno neobsahuje prázdny string alebo medzery. To rieši ten výraz čo som poslal včera: jmeno.match(/^[ ]*$/g) |
||
Joker Profil |
#6 · Zasláno: 17. 9. 2015, 13:40:56
MartaBrno:
Moc tomu skriptu nerozumím. V první řadě se zpracování nikdy nemůže dostat za ten return na řádku 2. Když pominu to, na ř. 3 se porovnává jmeno proti neexistující proměnné a podmínka na ř. 5 je syntakticky špatně. |
||
Chamurappi Profil |
#7 · Zasláno: 17. 9. 2015, 14:01:07
Reaguji na MartuBrno:
A musí tam vůbec být ten location.reload ? Ještě navíc s true , aby se přebila keš?
do { var jmeno = prompt("Vaše jméno, prosím:", ""); } while(!jmeno || jmeno.match(/^\s+$/)); document.write("Vítejte " + jmeno); prompt není použitelný. Dovolím si podotknout, že formuláře jsou na vyplňování příjemnější, ale to asi víš, když už v prvním příspěvku píšeš o otravnosti.
Reaguji na Tapse: „ var event = window.event || e; “
To tam je zbytečné, e bude ve všech prohlížečích obsahovat objekt, protože když napíšeš atribut onkeydown="klavesa(event)" , tak starší Explorer při volání použije globální window.event a Mozilla tam dá lokální proměnnou event . To, že atributy fungují takhle, je mimochodem i prapůvodní příčina této nekompatibility (špatný reverse-engineering ze strany MS při zkoumání chování Netscapu).
|
||
MartaBrno Profil * |
#8 · Zasláno: 17. 9. 2015, 14:01:15
snažím se udělat script který tě nepustí dál odkliknutím Escapem, prázdným textovým polem v PROMPTu anebo mezerníkem.
kam dám to " jmeno.match(/^[ ]*$/g) " ? Zkoušeli jsme to všelijak a nejelo to. if (jmeno == jmeno.match(/^[ ]*$/g)) if jmeno.match(/^[ ]*$/g) |
||
Camo Profil |
MartaBrno
if ( jmeno.match(/^[ ]*$/g) ) { // sa vykoná ak je jmeno prázdne, alebo obsahuje iba medzery } |
||
MartaBrno Profil * |
#10 · Zasláno: 17. 9. 2015, 16:22:22
Díky moc, borci
|
||
Časová prodleva: 8 let
|
0