Hallo, ich habe mir eine kleine JS-Funktion geschrieben die Formulareingaben überprüft.
Der Quelltext:
Testen tue ich es z.Zt. an folgendem Formular:
Das Problem ist "document.bestell_daten.elements[i].type" gibt den Typ des input-Feldes nicht korrekt zurück, weswegen immer nur die erste for-Schleife durchlaufen wird ohne irgendeine aktion. Dabei ist es egal in welcher Weise ich auf die Formularelemente zugreife, sowohl der IE als auch der Ff meinen immer "'document.bestell_daten.elements[i].type' has no properties". Interessanterweise werden die Typen der input-Felder, sobald ich sie vor der ersten if-Abfrage per 'alert()' ausgebe, korrekt zurückgeben.
Da ich ziemlich ratlos bin woran das liegen könnte, bitte ich um sachdienliche Hinweise.
MfG
Der Quelltext:
Code:
function checkFields() {
var field_count = document.bestell_daten.elements.length;
var fehler_text = new Array();
var fehler_checkbox = new Array();
for(var i = 0; i <= field_count; i++) {
var element_type=document.bestell_daten.elements[i].type;
if(element_type == 'text') {
var content_length = document.bestell_daten.elements[i].value.length;
if(content_length == 0) { fehler_text.push(document.bestell_daten.elements[i].name);
}
else {
var field_value=document.bestell_daten.elements[i].value;
var space_count=0;
for(var j=0; j<=content_length; j++) {
if(field_value.charAt(j) == ' ') {space_count+=1;
}
}
if(space_count>2) { fehler_text.push(document.bestell_daten.elements[i].name);
}
}
}
else {
if(element_type == 'checkbox') {
if(document.bestell_daten.elements[i].checked == false) {
fehler_checkbox.push(document.bestell_daten.elements[i].name);
}
}
}
}
if(fehler_text.length > 0) {
var alert_message_text="Sie müssen folgende Felder korrekt ausfüllen:\n";
for(var i=0; i<=fehler_text.length; i++) {
alert_message_text=alert_message_text+fehler_text[i]+"\n";
}
}
if(fehler_checkbox.length > 0) {
var alert_message_box="Sie müssen Ihr Einverständnis mit folgenden Bedingungen erklären:\n";
for(var i=0; i<=fehler_checkbox.length; i++) {
alert_message_box=alert_message_box+fehler_checkbox[i]+"\n";
}
}
var alert_message=alert_message_text+"\n\n"+alert_message_box;
if(alert_message.length>4) {
alert(alert_message);
}
}
Code:
<form action=bestellen.php method=post name=bestell_daten>
<table>
<tr>
<td>Name</td>
<td><input type=text name=name></td>
</tr>
<tr>
<td>Vorname</td>
<td><input type=text name=vorname></td>
</tr>
<tr>
<td>Strasse</td>
<td><input type=text name=strasse></td>
</tr>
.
.
usw.
.
.
</form>
Da ich ziemlich ratlos bin woran das liegen könnte, bitte ich um sachdienliche Hinweise.
MfG