Home  PHP Projekte  PHP Schulung  Informationsquellen  Geschichte  Core PHP  Fortgeschrittenes PHP  Templates  Cache-Technologien  OOH Forms  Grundlagen  JavaScript  Aktivierung  Validierungstypen  JS-Codevariante I  JS-Codevariante II  JS_README  Custom Validators  Custom Validators II  XML  Layoutmanager  Pages  Wizards  Fazit  Technik der Site  Büchertipps  Fotografie  Airbrush  Kontakt  Stuff 
|
Code für komplexe Validierungen
Der komplexe JavaScript Code bietet eine API für
Custom-Validators. Die API weicht etwas
von der PHP API für Custom-Validators ab.
Im Verzeichnis "HTML_OOH_Form/js/" befindet sich
die Datei "JS_README", die einen ersten Einblick in die Details
der JavaScript Programmierung gibt.
| Komplexer JavaScript Code |
Top |
|
<?php require_once('HTML_OOH_Form/form.php'); define('FORM_FILE_DIR', $DOCUMENT_ROOT . '/projekte/'); // alle File-Funktionen in den OOH-Forms benutzen die Konstante // FORM_FILE_DIR $code = implode('', file(FORM_FILE_DIR . 'HTML_OOH_Form/js/form_js_complex.js')); $code = preg_replace('/\t/', ' ', $code); printf("Komplexer Code [%d Bytes]:\n\n%s\n\n", strlen($code), $code );
// private void compressJS(string $js) demonstrieren $code = form::compressJS($code); printf("Komprimiert [%d Bytes]:\n\n%s", strlen($code), $code ); ?>
|
|
Ausgabe
|
Top |
Komplexer Code [2717 Bytes]:
function form(name, els, gv, val) {
this.name = name;
this.els = els;
this.gv = gv;
this.val = val;
this.err = [];
this.errc = [];
this.p = "";
};
new form;
form.prototype.validate = function() {
var e = f = m = "";
var i, el, vd, j, vl, c, l, a, d, n, t, s, x, k;
x = this;
n = x.name;
a = arguments;
x.errc = [];
x.err = [];
d = x.val;
for (i = 0; i < d.length; i++)
eval(d[i] + "(x);");
d = x.els;
for (i = 0; i < d.length; i += 3) {
el = x.els[i];
if (a.length && a[0] != x.p + el)
continue;
x.err[i] = "";
vd = d[i + 1];
t = x.get_value(x, el);
vl = t[0];
s = t[1];
j = 0;
while (j < vd.length) {
c = vd[j];
l = vl.length;
j += 4;
if ("l" == c && x.val_ev(el, "l") && (l < vd[j - 3] || (-1 != vd[j - 2] && l > vd[j - 2])))
x.err[i] += vd[j - 1] + "\n";
if ("r" == c && x.val_ev(el, "r") && -1 == vl.search(new RegExp(vd[j - 3], vd[j - 2])))
x.err[i] += vd[j - 1] + "\n";
if ("i" == c && x.val_ev(el, "i") && -1 != vl.search(new RegExp(vd[j - 3])))
x.err[i] += vd[j-- - 2] + "\n";
}
m = x.err.join("");
if (!a.length)
for (k = 0; k < x.errc.length; k++)
m += x.errc[k][1];
else
for (k = 0; k < x.errc.length; k++)
if (x.errc[k][0] == x.p + a[0]) {
m += x.errc[k][1];
break;
}
if (!f && m)
f = (s) ? s : x.p + el;
}
if (m) {
alert("" + m + "");
document.forms[n].elements[f].focus();
return false;
}
return true;
};
form.prototype.set_err = function(e, m) {
this.errc[this.errc.length] = [e, m + "\n"];
};
form.prototype.get_value = function (f, el) {
var g, i;
g = f.gv;
for (i = 0; i < g.length; i+= 2)
if (g[i] == el)
return eval(g[i +1] + "('" + f.name + "', '" + this.p + el + "');");
return [document.forms[f.name].elements[this.p + el].value, ""];
};
form.prototype.val_on = function (el, events) {
for (var i = 0; i < this.els.length; i += 3)
if (el == this.els[i])
this.els[i + 2] += events;
};
form.prototype.val_off = function (el, events) {
for (var i = 0; i < this.els.length; i += 3)
if (el == this.els[i])
this.els[i + 2] = this.els[i + 2].replace(new RegExp("[" + events + "]", "g"), "");
};
form.prototype.val_ev = function (el, events) {
for (var i = 0; i < this.els.length; i += 3)
if (el == this.els[i])
return (-1 != this.els[i + 2].search(new RegExp("[" + events + "]","g"))) ? true : false;
};
Komprimiert [1865 Bytes]:
function form(name,els,gv,val){this.name=name;this.els=els;
this.gv=gv;this.val=val;this.err=[];this.errc=[];this.p="";
};new form;form.prototype.validate=function(){var e=f=m="";
var i,el,vd,j,vl,c,l,a,d,n,t,s,x,k;x=this;n=x.name;a=arguments;
x.errc=[];x.err=[];d=x.val;for(i=0;ivd[j-2])))
x.err[i]+=vd[j-1]+"\n";if("r"==c&&x.val_ev(el,"r")&&-1==vl.search(new RegExp(vd[j-3],vd[j-2])))
x.err[i]+=vd[j-1]+"\n";if("i"==c&&x.val_ev(el,"i")&&-1!=vl.search(new RegExp(vd[j-3])))
x.err[i]+=vd[j---2]+"\n";}m=x.err.join("");if(!a.length)for(k=0;k |
|
|
< ^ >
|