Stránka 1 z 1
Podmínka v JavaScriptu
Napsal: čtv 29. říj 2009, 22:59
od arxeiss
Psal jsem kontrolu formuláře přes JS, kde jedna funkce mohla být zavolána z dvou skoro totožných formulářů. A napsal jsem si tam podmínku
Kód: Vybrat vše
if((nick.value=='' || pass.value=='' || passr.value=='' || jmeno.value=='' || email.value=='') && formular=='registrace'){
alert("Vyplně prosím všechna pole označená hvězdičkou!");
nick.focus();
return false;
}
Pokud jsem si tu fci vyvolal z formuláře jménem registrace bylo vše OK. Jak jsem ale vyvolal tu fci z toho druhého formuláře jménem
zmena tak to už nejelo dokud jsem ten výraz formular=='registrace' nedal nazačátek. Pokud bylo na konci tak jakoby ten script zkončil i když pod tou podmínkou byly další příkazy které nebyly v žádné podmínce, které by se provedly vždy.
Nechápu důvod proč prostě tam musí být ten výraz na začátku
Re: Podmínka v JavaScriptu
Napsal: ned 15. lis 2009, 22:45
od Lemra
Ta podmínka je OK, ale proměnné (nick, pass...) někde v těle té funkce musíš definovat - cca
function kontrola()
{
nick=document.forms["jméno_prvního_formuláře"].elements["nick"];
...;
}
... čili dodefinovat v rámci stejné funkce druhý form (místo jména by mohl teoreticky stačit index od 0) a neměl by být problém. IE umí rozšíření pole all, ale protože to nativně umí právě jen IE, určitě tuhle konstrukci nedoporučuji.
Re: Podmínka v JavaScriptu
Napsal: ned 15. lis 2009, 23:35
od arxeiss
Ty proměnné mám definované. Jediný problém se skrýval v tom že to co bylo v logickém součinu. V mém případě
if((nick.value=='' || pass.value=='' || passr.value=='' || jmeno.value=='' || email.value=='') && formular=='registrace')
musí být na začátku. Prostě teď to nepojede. Když dám to formular=='registrace' na začátek. takže bude
if(formular=='registrace' && ((nick.value=='' || pass.value=='' || passr.value=='' || jmeno.value=='' || email.value=='')
Teď to pojede. Vím že and má přeednost před OR apod... ale to by nemělo znamenat že musí být na začátku ne?
Re: Podmínka v JavaScriptu
Napsal: úte 12. led 2010, 08:39
od Zivan
Co to znamena "z druheho formulare to nejelo"? Podle tebe mel vyskocit ten alert nebo ne? Mozna by to chtelo o kus delsi cast kodu a presne popsat, co to dela a co by podle tebe melo.
Myslim, ze v JS se IF standardne vyhodnocuje zkracene, takze po tom otoceni se vyhodnoti promenna formular a pokud v ni neni "registrace", tak se uz dal nezjistuje, jestli jsou ty dalsi hodnoty prazdne nebo ne.
// Ondraster - nevyhrabuj pls, diky
Edit: Sorry, nevsimnul jsem si data

Re: Podmínka v JavaScriptu
Napsal: úte 12. led 2010, 19:44
od arxeiss
Tak když už jsi to vyhrábl...
Tak už jsem to vyřešil, ta deklarace jedné proměnné byla na špatném místě

a pak to spadlo protože to kontrolovalo nedeklarovanou proměnnou.