Autor Zpráva
Jigfreed
Profil *
Mám problém s osetrenim formulare proti spatne zadanym hodnotam pomoci javascriptu.....
Zde je html soubor s formularem a cesta k javascriptu(ulozeni scriptu je take v poradku stejne jako pojmenovani), Opravdu netusim v cem je problem.....Pri ukladani javascriptu se me to pta na jakysi kodovani textu, davam predvolene tzn Unicode, ale to by melo mit vliv pouze na hacky carky, ty v promenych nemam.

<html><head><title>formular</title>
<script src="osetreni.js" type="text/javascript"></script>
</head><body>
<FORM onSubmit="return j(this) && cisla(this) && e(this.email.value)" ACTION="objednavka1.php" NAME="objednavka1"><TABLE><TR>
<td> Jméno:</td> <td><input type=text name=jmeno></td></tr><tr>
<TD>Přijmení:</TD>
<TD><INPUT TYPE="text" NAME="prijmeni"></TD> </TR> <TR>
<TD>Město:</TD> <TD><INPUT TYPE="text" NAME="mesto"></TD> </TR> <TR>
<TD>Ulice,č,p.:</TD> <TD><INPUT TYPE="text" NAME="ulicecp"></TD> </TR> <TR>
<TD>PSČ:</TD> <TD><INPUT TYPE="text" size=4 NAME="psc"></TD> </TR> <TR>
<TD>Telefon:</TD> <TD><INPUT TYPE="text" value=+420 size=12 NAME="telefon"></TD> </TR> <TR>
<TD>E-mail:</TD> <TD><INPUT TYPE="text" size=20 NAME="email"></TD> </TR> <TR>
<TD>Kód zboží:</TD> <TD><INPUT TYPE="text" value=kod size=5 NAME="kod"></TD> </TR> <TR>
<TD>Množství:</TD> <TD><INPUT TYPE="text" size=20 NAME="mnozstvi"></TD> </TR> <TR>
<TD>Poznámka:</TD>
<TD><TEXTAREA NAME="Vzkaz" COLS="50" ROWS="3" >Sem napište poznámku prodávajícímu.</TEXTAREA>
</TR> </TABLE>
<INPUT TYPE="submit" VALUE="Odešli"> <INPUT TYPE="reset" VALUE="Vymaž"> </FORM> </BODY> </HTML>

A ZDE JE TEN JAVASCRIPT(NELEKAT):

// OSETRENI MAIL
function e(email)
{
invalidChars = " /:,;"

if (email == "")
{
// hodnota nesmà být prázdná
alert("Zapomněli jste na e-mail!!!")
return false
}
for (i=0; i<invalidChars.length; i++)
{ // does it contain any invalid characters?
badChar = invalidChars.charAt(i)
if (email.indexOf(badChar,0) > -1)
{
alert("Zadal jste špatné znaky")
return false
}
}
atPos = email.indexOf("@",1) // there must be one "@" symbol
if (atPos == -1)
{
alert("A kde je @??")
return false
}
if (email.indexOf("@",atPos+1) != -1)
{ // and only one "@" symbol
alert("Váš e-mail osahuje vÃÂce @")
return false
}
periodPos = email.indexOf(".",atPos)
if (periodPos == -1)
{ // and at least one "." after the "@"
alert("Váš e-mail nemá tečku .")
return false
}

// OSETRENI JP
function j(k)
{
if (k.jp.value == "")
{
// cannot be empty
alert("Vyplňte prosím jméno a příjmení")
return false
}
if (k.ucp.value == "")
{
// cannot be empty
alert("Vyplňte prosím ulici a číslo popisné")
return false
}
if (k.mesto.value == "")
{
// cannot be empty
alert("Vyplňte prosím město")
return false
}
return true
}

// OSETRENI PSC
function cisla(x)
{
delka=x.length;
if (delka!=5) return false;
for (i=0; i<delka; i++)
{
if (x.charAt(i) < "0") return false;
if (x.charAt(i) > "9") return false;
}
return true
}

function p(f)
{
_psc=f.psc.value;
if (_psc == "")
{
alert("Vyplňte PSČ!")
f.psc.focus()
return false
}
if (cisla(_psc))
{
return true
}
alert("Není správný formát PSČ!")
f.psc.focus()
f.psc.select()
return false
}
Majkl578
Profil
1. script se dava do tagu pre
2. spatna sekce
3. ochrana javascriptem je NEDOSTACUJICI
Jigfreed
Profil *
Dik za odpoved...no ja to mam mit do skoly... tze je mi celkem jedno jestli je javascript nedostacujici, ale je to v zadani....Jaka spatne sekce?
Majkl578
Profil
Jigfreed
hmm...
javascript nepatri do sekce PHP
Jigfreed
Profil *
nj ale v skci javascript nikdo odpovidaji poydeji a ja to potrebuju co nejrzchleji...jaka sekce je teda spatna??

Moderátor Chamurappi: Tahle je špatná. Zamykám. Nezakládej duplicitní vlákna. V kategorii PHP se odpovídá na javascriptové dotazy mnohem pomaleji než v kategorii JavaScript, proto se ta kategorie jmenuje PHP a ne JavaScript.
Jigfreed
Profil *
Jo sorry chapu=D sorac.A ten tag pre se dava do odkazu na ten script nebo primo do toho scriptu?
tiso
Profil
Jigfreed - tým že napíšeš aj do tejto sekcie si nepomôžeš. Prečítaj si pravidlá tejto diskusie a riaď sa podľa nich.
Toto téma je uzamčeno. Odpověď nelze zaslat.