hier also der quelltext.
die idee ist, dass mittels verschiedener parameter die plausibilisierung der eingabefelder
gemacht werden kann. das script soll dabei alle möglichen feldtypen behandeln können. (datum/text/integer)
die übergabe-parameter bedeuten : formularname/feldname/feldtyp/feldlänge/feldeingabe zwingend ja-nein/spezielles) beim parameter "spezielles" wird das "%-zeichen" als wildcard benutzt.
offen ist noch die eingabeaufforderung bei feldern die zwingend eingegeben werden müssen, da der focus
ja nicht auf dem feld sein muss.
der aufruf des scripts (chkForm) beim form-statement wurde wegen der grossen anzahl der möglichen übergabeparameter absichtlich nicht in betracht gezogen.
also besten dank und gruss
dany
******************************************************************************************
<FORM NAME="ERF1" TARGET="Report" METHOD="POST" ACTION="load">
<table border="0" cellspacing="0" cellpadding="0" width="95%">
<TR ALIGN=LEFT VALIGN=TOP>
<td class="textSmall" align="left" valign="middle" nowrap>Gültigkeit (yyyy-mm-dd)
</td>
<td class="textSmall" align="left" valign="middle"><INPUT TYPE="Text" NAME="GUELTIG" VALUE="0001-01-01" SIZE=8 MAXLENGTH=10 onBlur="chkForm(this.form.name,this.name,'date','10','1','0')">
</td>
<td class="textSmall" align="left" valign="middle" nowrap>Feld1
</td>
<td class="textSmall" align="left" valign="middle"><INPUT TYPE="Text" NAME="FELD1" VALUE="" SIZE=8 MAXLENGTH=6 onBlur="chkForm(this.form.name,this.name,'int','6','1','0')">
</td>
<td class="textSmall" align="left" valign="middle" nowrap>Feld2
</td>
<td class="textSmall" align="left" valign="middle"><INPUT TYPE="Text" NAME="FELD2" VALUE="" SIZE=2 MAXLENGTH=3 onBlur="chkForm(this.form.name,this.name,'char','3','1','1')">
</td>
<td class="textSmall" align="left" valign="middle"><INPUT TYPE="reset" VALUE="Reset" class="textSmall"> <INPUT TYPE="submit" VALUE="Ausführen" class="textSmall">
</td>
</tr>
</table>
</div>
</FORM>
*******************************************************
function chkForm(form,name,type,leng,fill,spec){
var wert = 'document.'+form+'.'+name+'.value';
var laenge = 'document.'+form+'.'+name+'.value.length';
var fokus = 'document.'+form+'.'+name+'.focus()';
/* prüft den datentyp "date" */
if(type =="date"){
/* prüft ob variable abgefüllt ist (wenn zwingend!) */
if(fill =="1" && eval(wert) =="") {alert("Bitte "+name+" eingeben !");
eval(fokus);
return false;}
/* prüft syntax der variable vom typ "date" (yyyy-mm-dd) */
if(eval(wert) !=""){
var chkD = 1;
for(i=0;i<4;++i){
var check_date ='document.'+form+'.'+name+'.value'+'.charAt(i)';
if(eval(check_date) < "0"
|| eval(check_date) > "9")
chkD = -1;
}
for(i=5;i<7;++i){
var check_date ='document.'+form+'.'+name+'.value'+'.charAt(i)';
if(eval(check_date) < "0"
|| eval(check_date) > "9")
chkD = -1;
}
for(i=8;i<10;++i){
var check_date ='document.'+form+'.'+name+'.value'+'.charAt(i)';
if(eval(check_date) < "0"
|| eval(check_date) > "9")
chkD = -1;
}
var check_date ='document.'+form+'.'+name+'.value'+'.charAt(4)';
if(eval(check_date) != "-")
chkD = -1;
var check_date ='document.'+form+'.'+name+'.value'+'.charAt(7)';
if(eval(check_date) != "-")
chkD = -1;
if(chkD == -1) {alert(name+" : Ungueltiges Format yyyy-mm-dd");
eval(fokus);
return false;}
/* ende der syntaxprüfung "date" */
}
/* ende der prüfung des datentyps "date" */
}
/* prüft den datentyp "int" */
if(type =="int"){
/* prüft ob variable abgefüllt ist (wenn zwingend!) */
if(fill =="1" && eval(wert) =="") {alert("Bitte "+name+" eingeben !");
eval(fokus);
return false;}
/* prüft typ "int" ohne % */
if(eval(wert) !="" && spec=="0"){
for(i=0;i<eval(laenge);++i){
var check_int ='document.'+form+'.'+name+'.value'+'.charAt(i)';
if(eval(check_int) < "0" || eval(check_int) > "9")
{alert(name+" Ungueltiges Format oder keine Zahl");
eval(fokus);
return false;}
}
/* ende der prüfung "int" ohne % */
}
/* prüft typ "int" auf % am ende*/
if(eval(wert) !="" && spec=="1"){
for(i=0;i<eval(laenge)-1;++i){
var check_int ='document.'+form+'.'+name+'.value'+'.charAt(i)';
if(eval(check_int) < "0" || eval(check_int) > "9")
{alert(name+" Ungueltiges Format oder keine Zahl");
eval(fokus);
return false;}
}
for(i=eval(laenge)-1;i<eval(laenge);++i){
var check_int ='document.'+form+'.'+name+'.value'+'.charAt(i)';
if(eval(check_int) < "0" || eval(check_int) > "9"){
if(eval(check_int) !="%")
{alert(name+" Ungueltiges Format oder keine Zahl");
eval(fokus);
return false;}
}
}
/* ende der prüfung auf % */
}
/* ende der prüfung des datentyps "int" */
}
/* prüft den datentyp "char" */
if(type =="char"){
/* prüft ob variable abgefüllt ist (wenn zwingend!) */
if(fill =="1" && eval(wert) =="") {alert("Bitte "+name+" eingeben !");
eval(fokus);
return false;}
/* ende der prüfung des datentyps "char" */
}
/* ende der function chkform */
}
</script>