Autor Zpráva
Maniakum
Profil *
Zdravím, potreboval bych udelat kontrolu vlozenych udaju ve formulari, mam takovyto script:
<SCRIPT LANGUAGE="JavaScript"><!--
function zkontroluj2(formular)
{

if (formular.jmeno.value=="")
{
alert("Vaše jméno a příjmení musíte vyplnit!");
formular.jmeno.focus();
return false;
}
if (formular.adresa.value=="")
{
alert("Vaši ulici musíte vyplnit!");
formular.adresa.focus();
return false;
}

if (formular.mesto.value=="")
{
alert("Vaše město musíte vyplnit!");
formular.mesto.focus();
return false;
}
if (formular.psc.value=="")
{
alert("Vaše PSČ musíte vyplnit!");
formular.psc.focus();
return false;
}
if (formular.tel.value=="")
{
alert("Vaše telefonní číslo musíte vyplnit!");
formular.tel.focus();
return false;
}
if (! formular.souhlas.checked) {
alert('Musíte souhlasit s kupními podmínkami!.');
return false;
}


else
return true;
}

// -->



</SCRIPT>

ale potrebuju osetrit, aby tam nesla vlozit mezera a na telefonu vlozit jen cisla (email uz mam vyresen)
dekuji moc!!!
Leo
Profil
Regularni vyrazy, Leo
Maniakum
Profil *
to je hezky, ale ja v javascriptu vubec neumimbyl bych rad za priklady, pripadne mi staci jen odkaz na nejakou stranku (anglicky nemumim, tudiz jsem je neprolejzal...diky moc
Aleš Janda
Profil *
www.regexp.cz

Telefon bych udělal takhle:
if (formular.telefon.value.search('^(\+42[01])?[- ]?[0-9]{3}[- ]{1}[0-9]{3}[- ]{1}[0-9]{3}$') == -1) alert("Špatný telefon!");
peta
Profil *
Maniakum: tvuj formular ma jednu chybu, zobrazi kazkou spatnou kolonku. Mne osobne by otravilo, kdyz by mi kazdou kolonku vyhodil alert.

Co zkusit neco typu:
var tt="";var xx=false
if (chyba1...) {xx=true;tt+="Spatny mail\n"}
if (chyba2...) {xx=true;tt+="Spatny telefon\n"}
if (chyba3...) {xx=true;tt+="Spatna adresa\n"}
if (xx) alert(tt)

Hm?
Maniakum
Profil *
to peta:
mas pravdu, ale potrebuju zajistit to, aby mi ve formulari nesla odeslat mezera a chybny vyplneni

to Aleš Janda:
dekuju moc, a jak mam prosim vyrusit napriklad u policka kde vyplnuju jmeno pokazdy jinak dlouhy, aby tam nesla odeslat mezera?
Milos
Profil *
Proc tento kod nefunguje ve FireFoxu 1.0.4

function kontrola_formulare() {
if (!formular.souhlas.checked) {
window.alert('Musíte souhlasit s kupními podmínkami!.');
return false;
}
}
Leo
Profil
Spatne se odkazujete na policko formulare, zkuste document.getElementById, Leo
werner
Profil
Zkus takto:

function kontrola_formulare(formular,zaskrtavaci){
if(!document.forms[formular].elements[zaskrtavaci].checked==true)
window.alert('Musíte souhlasit s kupními podmínkami!.');
return false;
}


No a voláš to např. při odesílání formuláře takto:
<form name='smlouva' action='...' onSubmit="return kontrola_formulare('smlouva','skrtaci_pole')">
...
<input type="checkbox" name="skrtaci_pole">
...
</form>

Tohle mi chodí.
Milos
Profil
Uz mi to funguje. Diky:)
Leo
Profil
Zkuste se prosim priste na jednu vec ptat jen jednou, ne trikrat, diky :-) Leo
peta
Profil *
Maniakum: Mezeru a jine znaky, to uz nekdo psal, regularnimi vyrazy:

Vesmes je to podobny i pro JS, ale nektere linky jsou pro PHP
regularni vyrazy
http://www.regexp.cz/
http://interval.cz/clanek.asp?article=1781
http://www.root.cz/clanky/regularni-vyrazy-v-php-funkce/ SMAJLIKY
http://interval.cz/clanek.asp?article=3758

Tu mezeru bych rusil jako "mezera+" nahrad mezera
vyraz(retezec,podminka)
if (retezec="" || retezec="mezera") vysledek=false
... cili vsech 2 a vice mezer nahrad za 1. A jestlize ej celkove 1 mezera nebo prazdny retezec, pak dej vysledek false.
Presny regularni vyraz je na to, regexp, mozna, pro cele jmeno. Treba ve jmenu by se meli vyskytovat jen pismena...

dobry priklad je chat na
www.interval.cz
hledani CHAT
kliknes na prvni a v tom bude link "nejaky chat" a tam jsou takove pekne regularni vyrazy na jmeno
http://interval.cz/serial.asp?serial=32
... ja to mam uz mirne upravene
http://peter-mlich.wz.cz/xx/
klikni INFO, klikni dole na source.rar
Toto téma je uzamčeno. Odpověď nelze zaslat.