zweidimaensionales array?!
timex
- javascript
abend zusammen,
irgend jemand eine idee, wie ich die folgenden funktion verkuerzen kann?!
nach den einzelnen ueberpreufungen kommt immer die selbe prozedur. also alles ab ok = false; ...
mit einem einfachen array komme ich hier nicht weiter...
fragt freundlich,
timex.
function checkForm() {
var ok = true;
fokus = true;
if (checkText("vorname")) {
ok = false;
fokusItem("vorname");
switchItem("vorname",1,1);
} else {
switchItem("vorname",0,0);
}
if (checkText("nachname")) {
ok = false;
fokusItem("nachname");
switchItem("nachname",1,1);
} else {
switchItem("nachname",0,0);
}
if (!checkPostalCode(searchFormObject("plz").value)) {
ok = false;
fokusItem("plz");
switchItem("plz",1,1);
} else {
switchItem("plz",0,0);
}
if (checkText("ort")) {
ok = false;
fokusItem("ort");
switchItem("ort",1,1);
} else {
switchItem("ort",0,0);
}
if ((!checkPhoneNumber(searchFormObject("telefon").value)) || (checkText("telefon"))) {
ok = false;
fokusItem("telefon");
switchItem("telefon",1,1);
} else {
switchItem("telefon",0,0);
}
if (!checkMail(searchFormObject("mail").value)) {
ok = false;
fokusItem("mail");
switchItem("mail",1,1);
} else {
switchItem("mail",0,0);
}
if (checkRadioCheck("checkBox")) {
ok = false;
fokusItem("checkBox");
switchItem("checkBox",1,1);
} else {
switchItem("checkBox",0,0);
}
if (checkRadioCheck("radioButton")) {
ok = false;
fokusItem("radioButton");
switchItem("radioButton",1,1);
} else {
switchItem("radioButton",0,0);
}
if (!ok)
return ok;
}
// -->
</script>
hi,
irgend jemand eine idee, wie ich die folgenden funktion verkuerzen kann?!
da du keinerlei anhaltspunkte lieferst, was funktionen wie checkText(), fokusItem() oder switchItem() bei dir machen, ist keine pauschale antwort möglich.
statt aber z.B. mit
document.formularname.feldname
auf ein formularfeld zuzugreifen, kannst du auch die alternative schreibweise
document.forms["fomularname"].elements["feldname"]
benutzen - wobei du dann hier auch gut eine (array-)variable für den feld- oder auch den formnamen einsetzen kannst,
document.forms["fomularname"].elements[variablemitdemfeldnamen] oder
document.forms["fomularname"].elements[feldnamenarray[15]]
gruss,
wahsaga
da du keinerlei anhaltspunkte lieferst, was funktionen wie checkText(), fokusItem() oder switchItem() bei dir machen, ist keine pauschale antwort möglich.
also,
switchItem zeigt bei fehlerhafter eingabe einen fehlertext an, bei korrekter eingabe wird der fehltext wieder ausgeblendet
fokusItem setzt den fokus auf ein fehlerhaftes eingabefeld
alle weiteren functionen ueberpruefen mit hilfe von regular expressions auf richtige benutzereingaben. diese funktionen rufen folgende funktion auf, um das zugehoerige formularelement auffindig zu machen ...
function searchFormObject(id) {
var f;
for (var i=0; i<document.forms.length; i++) {
f = document.forms[i];
for (var j=0; j<f.elements.length; j++)
if (f.elements[j].name==id)
return f.elements[id];
}
return null;
}
gruss,
timex
abend zusammen,
irgend jemand eine idee, wie ich die folgenden funktion verkuerzen kann?!
nach den einzelnen ueberpreufungen kommt immer die selbe prozedur. also alles ab ok = false; ...
mit einem einfachen array komme ich hier nicht weiter...
das funktioniert dann nur fuer die ersten beiden abfragen
var zupruefen = new Array("vorname","nachname");
for(i=0;i<zupruefen.length;i++) {
if (checkText([zupruefen[i]])) {
ok = false;
fokusItem([zupruefen[i]]);
switchItem([zupruefen[i]],1,1);
} else {
switchItem([zupruefen[i]],0,0);
}
}
ab hier ist es dann nicht mehr funktional ...
if (!checkPostalCode(searchFormObject("plz").value)) {
ok = false;
fokusItem("plz");
switchItem("plz",1,1);
} else {
switchItem("plz",0,0);
}if (checkText("ort")) {
ok = false;
fokusItem("ort");
switchItem("ort",1,1);
} else {
switchItem("ort",0,0);
}if ((!checkPhoneNumber(searchFormObject("telefon").value)) || (checkText("telefon"))) {
ok = false;
fokusItem("telefon");
switchItem("telefon",1,1);
} else {
switchItem("telefon",0,0);
}if (!checkMail(searchFormObject("mail").value)) {
ok = false;
fokusItem("mail");
switchItem("mail",1,1);
} else {
switchItem("mail",0,0);
}if (checkRadioCheck("checkBox")) {
ok = false;
fokusItem("checkBox");
switchItem("checkBox",1,1);
} else {
switchItem("checkBox",0,0);
}if (checkRadioCheck("radioButton")) {
ok = false;
fokusItem("radioButton");
switchItem("radioButton",1,1);
} else {
switchItem("radioButton",0,0);
}if (!ok)
return ok;}
// -->
</script>