Autor Zpráva
Lucia 888
Profil
co je tu potrebne zmenit aby som mohla použit viac položiek ako je 9 ?????
napr. 25




<script language="Javascript" type="text/javascript">
var kontrolaPrvku = new Array();
var chyby = "";
var navratovaHodnota = false;
var jazyk = new Array();
jazyk["zahlavi"] = "Ve formuláři jsou následující chyby:"
jazyk["start"] = "";
jazyk["polozka"] = "";
jazyk["povinna"] = " je povinné";
jazyk["minimum"] = " a musí obsahovat nejméně ";
jazyk["maximum"] = " a maximálně ";
jazyk["minmax"] = " a maximálně ";
jazyk["znaky"] = " znaků";
jazyk["cislice"] = " a musí obsahovat čísla";
jazyk["email"] = " musí obsahovat platnou emailovou adresu";
function definice(n, type, HTMLname, minimum, maximum, d) {
var p;
var i;
var x;
if (!d) d = document;
if ((p=n.indexOf("?"))>0&&parent.frames.length) {
d = parent.frames[n.substring(p+1)].document;
n = n.substring(0,p);
}
if (!(x = d[n]) && d.all) x = d.all[n];
for (i = 0; !x && i < d.forms.length; i++) {
x = d.forms[i][n];
}
for (i = 0; !x && d.layers && i < d.layers.length; i++) {
x = definice(n, type, HTMLname, minimum, maximum, d.layers[i].document);
return x;
}
eval("V_"+n+" = new vysledkyformulare(x, type, HTMLname, minimum, maximum);");
kontrolaPrvku[eval(kontrolaPrvku.length)] = eval("V_"+n);
}
function vysledkyformulare(form, type, HTMLname, minimum, maximum) {
this.form = form;
this.type = type;
this.HTMLname = HTMLname;
this.minimum = minimum;
this.maximum = maximum;
}
function kontrola() {
if (kontrolaPrvku.length > 0) {
errorObject = "";
for (i = 0; i < kontrolaPrvku.length; i++) {
validateObject = new Object();
validateObject.form = kontrolaPrvku[i].form;
validateObject.HTMLname = kontrolaPrvku[i].HTMLname;
validateObject.val = kontrolaPrvku[i].form.value;
validateObject.len = kontrolaPrvku[i].form.value.length;
validateObject.minimum = kontrolaPrvku[i].minimum;
validateObject.maximum = kontrolaPrvku[i].maximum;
validateObject.type = kontrolaPrvku[i].type;
if (validateObject.type == "cislice" || validateObject.type == "string") {
if ((validateObject.type == "cislice" && validateObject.len <= 0) || (validateObject.type == "cislice" && isNaN(validateObject.val))) { chyby += jazyk['start'] + jazyk['polozka'] + validateObject.HTMLname + jazyk['povinna'] + jazyk['cislice'] + "\n";
} else if (validateObject.minimum && validateObject.maximum && (validateObject.len < validateObject.minimum || validateObject.len > validateObject.maximum)) { chyby += jazyk['start'] + jazyk['polozka'] + validateObject.HTMLname + jazyk['povinna'] + jazyk['minimum'] + validateObject.minimum + jazyk['minmax'] + validateObject.maximum+jazyk['znaky'] + "\n";
} else if (validateObject.minimum && !validateObject.maximum && (validateObject.len < validateObject.minimum)) { chyby += jazyk['start'] + jazyk['polozka'] + validateObject.HTMLname + jazyk['povinna'] + jazyk['minimum'] + validateObject.minimum + jazyk['znaky'] + "\n";
} else if (validateObject.maximum && !validateObject.minimum &&(validateObject.len > validateObject.maximum)) { chyby += jazyk['start'] + jazyk['polozka'] + validateObject.HTMLname + jazyk['povinna'] + jazyk['maximum'] + validateObject.maximum + jazyk['znaky'] + "\n";
} else if (!validateObject.minimum && !validateObject.maximum && validateObject.len <= 0) { chyby += jazyk['start'] + jazyk['polozka'] + validateObject.HTMLname + jazyk['povinna'] + "\n";
}
} else if(validateObject.type == "email") {
if ((validateObject.val.indexOf("@") == -1) || (validateObject.val.charAt(0) == ".") || (validateObject.val.charAt(0) == "@") || (validateObject.len < 6) || (validateObject.val.indexOf(".") == -1) || (validateObject.val.charAt(validateObject.val.indexOf("@")+1) == ".") || (validateObject.val.charAt(validateObject.val.indexOf("@")-1) == ".")) { chyby += jazyk['start'] + jazyk['polozka'] + validateObject.HTMLname + jazyk['email'] + "\n"; }
}
}
}
if (chyby) {
alert(jazyk["zahlavi"].concat("\n" + chyby));
chyby = "";
navratovaHodnota = false;
} else {
navratovaHodnota = true;
}
}
</script>





<body onLoad="init()">

<script language="Javascript" type="text/javascript">
function init() {
definice('polozka1', 'string', 'Meno');
definice('polozka2', 'string', 'Priezvisko');
definice('polozka3', 'string', 'Názov eshopu');
definice('polozka4', 'string', 'Ulica');
definice('polozka5', 'string', 'č.domu');
definice('polozka6', 'string', 'Mesto/Obec');
definice('polozka7', 'string', 'PSČ');
definice('polozka8', 'string', 'Štát');
definice('polozka9', 'string', 'číslo účtu');
}
</script>
peta
Profil *
Tak to je naprosto genialni script :) Ironicky mysleno
Na ktere strance jsi to vyhrabal/a ?

var jazyk = new Array();
jazyk["zahlavi"] = "Ve formuláři jsou následující chyby:"
jazyk["zahlavi"] - asociativni pole, cili Object, nikoliv Array

Jinak, ten script mi prijde neco jako univerzalni kontrola formulare.
Cili otazka o vice polozkach mi prijde trosku mimo, kdyz se kontroluje "n" polozek.

function init() {
definice('polozka1', 'string', 'Meno');
definice('polozka2', 'string', 'Priezvisko');
definice('polozka3', 'string', 'Názov eshopu');
definice('polozka4', 'string', 'Ulica');
definice('polozka5', 'string', 'č.domu');
definice('polozka6', 'string', 'Mesto/Obec');
definice('polozka7', 'string', 'PSČ');
definice('polozka8', 'string', 'Štát');
definice('polozka9', 'string', 'číslo účtu');
}
Pravdepodobne by tu melo stacit dopsat
definice('polozka9', 'string', 'číslo účtu');
definice('polozka10', 'cislice', 'icq',1,9999999999);
definice('polozka11', 'email', 'mail');


"cislice" "string" "email"
kde u cislice to kontroluje max a min. Tvurci bych rad sdelil par veci, jak se takove veci pisi :)
Lucia 888
Profil
je to z nejakej knihy..dik za radu.najdem si iny.ked som pridala 10 polozku neslo to.len po 9
peta
Profil *
Lucia 888
tak dej odkaz na stranku.
pravdepodobne treba napsat
<input name="polozka10">
a do toho init() potom dopsat
definice('polozka10', 'cislice', 'icq',1,9999999999);

Ono to jako neni spatne, jsou tam i genialni veci, ale celkove je to napsane fakt neprehledne :)
Lucia 888
Profil
ved prave to nefunguje-nevies o nejakom dobrom formulari na viac ako 9 poloziek ?
peta
Profil *
Dobrom, mno, moj. Ale ma urcite chyby...
Ale ja nepouzivam taku kontrolu, ako ty, inu.

function checkFormUserEdit(form)
{var p,p2,b,c,reg;b=1;c="";
p = form.userlogin.value;
if (p=="") {b=0;c+="\nLOGIN - neni zadan !";}
p = p.replace(/[0-9A-Za-z]/g,"");
if (p!="") {b=0;c+="\nLOGIN - nepovolene znaky ! (povolene A-Za-z0-9)";}
if (p.length>16) {b=0;c+="\nLOGIN - max pocet znaku 16 !";};

p = form.userpsw.value;
// if (p=="") {b=0;c+="\nPASSWORD - neni zadan !"}
p2= p;
p = p.replace(/[0-9A-Za-z]/g,"");
if (p!="") {b=0;c+="\nPASSWORD - nepovolene znaky ! (povolene A-Za-z0-9)";}

p = form.userpsw1.value;
// if (p=="") {b=0;c+="\nPASSWORD - neni zadan druhy udaj password !";}
if (p!=p2) {b=0;c+="\nPASSWORD - oba udaje password musi byt shodne !";}

p = form.usermail.value;
reg = new RegExp("@");
if (p=="") {b=0;c+="\nMAIL - neni zadan !";}
if (!reg.test(p)) {b=0;c+="\nMAIL - neobsahuje znak zavinac @ !";}
if (p.length>64) {b=0;c+="\nMAIL - max pocet znaku 64 !";};

p = form.ins_contactB0.value;
// if (p=="") {b=0;c+="\nLOGIN - neni zadan !";}
// p = p.replace(/[0-9A-Za-z]/g,"");
// if (p!="") {b=0;c+="\nLOGIN - nepovolene znaky ! (povolene A-Za-z0-9)";}
if (p.length>64) {b=0;c+="\nkontaktB JMENO - max pocet znaku 64 !";};

p = form.ins_contactB1.value;
p = p.replace(/[0-9]{0,31}/,"");
if (p!="") {b=0;c+="\nkontaktB TEL - nepovolene znaky ! (povolene 0-9, 31 znaku)";}

p = form.ins_contactB2.value;
reg = new RegExp("@");
// if (p=="") {b=0;c+="\nMAIL - neni zadan !";}
if (p!=="" && !reg.test(p))
{b=0;c+="\nkontaktB MAIL - neobsahuje znak zavinac @ !";}
if (p.length>64) {b=0;c+="\nkontaktB MAIL - max pocet znaku 64 !";};

if (!b) {alert("---Upravit uzivatele---"+c);}
return b?true:false;
}


<?php
function PPtr3($sel,$a,$i,$k0,$l0,$typ)
{
global $lng;
$sel=($sel==1)?' class="sel"':'';
$l=$lng[$a];
if ($typ==0)
{
$l=$l[1][$i];
$t ="\n".'<tr>'."\t".'<td><label'.$sel.'>'.$l.'</label></td>';
$t.="\n\t".'<td><input type="text" value="'.$k0.'" name="'.$a.''.$i.'"/></td></tr>';
}
elseif ($typ==1)
{$l=$l[1][$i];}

if ($typ==1 || $typ==2)
{
$t ="\n".'<tr>'."\t".'<td><label'.$sel.'>'.$l[0].'</label></td>';
$t.="\n\t".'<td><select name="'.$a.''.$i.'">';
foreach ($l[1] as $key => $value)
{if ($key!==$l0) $t.="\n\t".'<option value="'.$key.'"'.(($key==$k0)?' selected="selected"':'').'>'.$value.'</option>';}
$t.="\n\t</select></td></tr>";
}
echo $t;

}



$p = array(
$row0['user_login'],
'',
'',
Ereg_Replace("\@","@",$row0['user_mail']),
$row0['user_lang'],
$row0['user_skin'],
$row0['ins_contactB0'],
$row0['ins_contactB1'],
Ereg_Replace("\@","@",$row0['ins_contactB2'])
);

$z='user';
$k=0; PPtr3(0,$z,'login' ,$p[$k],99,0);
$k++; PPtr3(0,$z,'psw' ,$p[$k],99,0);
$k++; $t ="\n".'<tr>'."\t".'<td>'.$lng['user'][1]['psw'].'</td>';
$t.="\n\t".'<td><input type="password" value="'.$p[$k].'" name="userpsw1"/></td></tr>';
echo $t;
$k++; PPtr3(0,$z,'mail' ,$p[$k],99,0);
$k++; PPtr3(0,$z,'lang' ,$p[$k],99,1);
$k++; PPtr3(0,$z,'skin' ,$p[$k],99,1);
$z='ins_contactB';
echo "\n\n\n<tr>\t".'<td colspan="2"><hr/><i>'.$lng[$z][0].'</i></td></tr>';
$k++; PPtr3(0,$z,0,$p[$k],99,0);
$k++; PPtr3(0,$z,1,$p[$k],99,0);
$k++; PPtr3(0,$z,2,$p[$k],99,0);
?>
peta
Profil *
Lucia 888
jakpsatweb - javascript - priklady

Jestli ocekavas, ze ti prepisi ten priklad nahore, jak bych to udelal ja a ukazi ti, jak se tam prida dalsi input, tak neco za neco :)
Tady se proste pocita s tim, ze kdyz das takovy kod, a nedas jej se vsim, i s temi inputy, nejlepe odkaz na stranku na inetu tak, ze si s tim umim poradit sam/a
Toto téma je uzamčeno. Odpověď nelze zaslat.

0