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