Autor Zpráva
dedleg
Profil *
Mam naprikad kod:
<script language="javascript" type="text/javascript">
function bla(bla)
{
if(form.input.value=="f4g5dfh1")
{
if(form.input02.value="heslo")
{
CON = confirm("Tvoje meno a heslo boli zadane dobre Chces pokracovat ?");
if(CON)
location="subor"
} else { alert("Takto to nepojde kamos!")
} else { alert("Takto to nepojde kamos!")
}
}
</script>

No ale subor sa nahra aj ked kliknem v confirme na Cancel Neviete ako by to fungovalo iba ked kliknem na OK?
mstar
Profil
to CON je asi bolean, že? Jakože javě moc nerozumím. Jen jsem přemíšlel, ... :

ad1. Jestli se dá porovnávat text použitím ==, nebo jestli by se nemělo použít něco jako strcmp() jako třeba v C++, nebo PHP

ad2. Jestli není něco uloženýho v tom CON, možná by se to mělo nulovat před prvním IFem

ad3. Podmínka (form.input02.value="heslo") bych řekl, že platí furt

ad4. Jestli před druhým else nechybí }

...nevím, snad jsem tě aspoň trochu popostrčil, i když jsem asi moc konkrétní nebyl a akorát mlžil :-)
centi
Profil
dedleg
if(form.input02.value="heslo")
V tejto druhej podmienke ti chýba jeden znak "=". Takto zapísaný výraz v podmienke vráti vždy TRUE, pretože sa nejedná o porovnanie, ale priradenie hodnoty.

Ďalej tam máš trochu chaos s {} zátvorkami. Toto by malo fungovať:


function bla( bla ) {
if(form.input.value=="f4g5dfh1") {
if(form.input02.value="heslo") {
CON = confirm("Tvoje meno a heslo boli zadane dobre Chces pokracovat ?");
if(CON) {
location="subor";
}
else {
alert("Takto to nepojde kamos!");
}
}
else {
alert("Takto to nepojde kamos!");
}
}
}
Dedleg
Profil
To som pisal narychlo cize na to druhe = som zabudol!
a to druhe esle tam musi byt, vy tukvasi to preto lebo ked sa obidve podmienky splnia tak predsa stoho snikne iba jedna akcia, ale ked jedna podmienka sedi a druha nie tak alert ten druhej zareaguage a tym padom su podmienky nesplnene asi by ti naseplo toto: http://www.script.szm.sk/login1.htm
peta
Profil
dedleg
Mas teda nekde odkaz na konecnou fazi? nejlepe odkaz, hure script tu
Co pise JS konzola?

(form.input02.value="heslo")
tato podminka je splnena temer vzdy, jedna se o prirazeni hodnoty do promenne a obvykle se zadari, tj.
alert((form.input02.value="heslo")*1)
vyhodi temer vzdy 1
CIli, jak uz psali, chybi =, tj
(form.input02.value=="heslo")
nebo
(form.input02.value==="heslo")

dale ti psal centi problem se zavorkami. Nejjistejsi je psat Uplne vsechny zavorky,
priklad tvoje:
function bla(bla)
{
if(form.input.value=="f4g5dfh1")
{
if(form.input02.value="heslo")
{
CON = confirm("Tvoje meno a heslo boli zadane dobre Chces pokracovat ?");
if(CON)
location="subor"
} else { alert("Takto to nepojde kamos!")
} else { alert("Takto to nepojde kamos!")
}
}
To je jako
function ()
{
if (...) { if (...) {... if (...) ... } else {...} else {...} }
???
... jedna zavorka ti schazi, toto vypise JS konzola kazdeho www prohlizece

Jak se to pise poradne? Nejlepe mit take nejaky nastroj s hight-light syntax (zvyraznovani syntaxe) a poradne myslim vsechny zavorky:
function ()
{
if (...) { if (...) {... if (...) {...} } else {...} else {...} }
}

A ted dalsi vec, jestlize na 2 ify davas stejny vysledek, pak je muzes pojit andem
if (... && ...) {... if (...) {...} } else {...} }
if (... AND ...) {... if (...) {...} } else {...} }
usetris si tim problemy se zavorkami, treba

CON = confirm("Tvoje meno a heslo boli zadane dobre Chces pokracovat ?");
toto je naprosto zbytecna otazka. Pokud zada nekdo jmeno a heslo spravne a da ok, tak se zcela jiste chce prikhlasit a nemusis se ho znova ptat
if (... AND ...) {...} else {...} }

var prihlaseny = (... AND ...);
if (prihlaseny) {...} else {...} }
pro pozdejsi pouziti v dalsich scriptech

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: