[JavaScript] input-Felder prüfen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [JavaScript] input-Felder prüfen

    Hallo, ich habe mir eine kleine JS-Funktion geschrieben die Formulareingaben überprüft.

    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&uuml;ssen folgende Felder korrekt ausf&uuml;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&uuml;ssen Ihr Einverst&auml;ndnis mit folgenden Bedingungen erkl&auml;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);
    }
    }
    Testen tue ich es z.Zt. an folgendem Formular:

    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>
    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
    Zuletzt geändert von Spliffster; 08.08.2005, 15:25.
Lädt...
X