tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
614
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    messmar messmar ist offline Mitglied Brokat
    Registriert seit
    Oct 2003
    Ort
    München (Bayern)
    Beiträge
    434
    Hallo zusammen,

    ich habe ein Blackout gerade und komme nicht weiter ;-(

    Folgendes: ich abe ein Formular mit ca. 24 TextFledern und möchte alle Abfragen angefangen mit dem Namen und soweiter.

    Das mit dem Namen hat schon geklappt, aber dann wenn ich diese abfrage, ob die leer sind oder nicht, dann klappt es nicht.

    Ich komme gar nicht rein in die zweite For-Schleife... kann einer bitte helfen?

    HTML-Code:
    for(i=0; i<document.forms[0].length; i++){
        if(document.forms[0].elements[i].type == 'text'){
            var getName = document.forms[0].elements[i].name;
    
            var allEmpty = true;
    
            if(getName.match('FName')){
                
                var getThemAll = document.forms[0].elements[i];
                
                alert(getThemAll.value);
    
                for(var j=0; j<=getThemAll.length; j++) {
                    if(getThemAll.value[j] != ''){
                        alert('j' + getThemAll.value[j]);
                        allEmpty = false;
                    }
    
                  
                    if (allEmpty){
                        alert('es sind alle leer');
                    }else{
                        alert('das passt');
                    }
                }
            }
        }
    }
    HTML-Code:
    <form ....>
    <input type="text" name="friend_01_FName" value="xxx" class="inputText_01" />
    <input type="text" name="friend_01_LName" value="yyy" class="inputText_02" />
    <input type="text" name="friend_01_eMail" value="" class="inputText_02" />
    <input type="text" name="friend_02_FName" value="" class="inputText_03" />
    <input type="text" name="friend_02_LName" value="" class="inputText_04" />
    <input type="text" name="friend_02_eMail" value="" class="inputText_04" />
    <input type="text" name="friend_03_FName" value="" class="inputText_03" />
    <input type="text" name="friend_03_LName" value="" class="inputText_04" />
    <input type="text" name="friend_03_eMail" value="" class="inputText_04" />
    <input type="text" name="friend_04_FName" value="" class="inputText_03" />
    <input type="text" name="friend_04_LName" value="" class="inputText_04" />
    <input type="text" name="friend_04_eMail" value="" class="inputText_04" />
    </form>
    vielen Danke und Gruß
    Messmar
     

  2. #2
    Quaese Quaese ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Feb 2004
    Beiträge
    3.451
    Hi,

    im Augenblick enthält getThemAll in jedem Schleifendurchlauf genau ein Element, falls der Name des aktuell bearbeiteten Elements den Teilstring FName enthält.

    Was genau möchtest du machen? Sollen die Element mit dem Teilstring FName daraufhin geprüft werden, ob mindestens ein Wert enthalten ist oder alle leer sind?

    Ciao
    Quaese
     
    Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
    ----
    Der "Fortsetzungsroman" auf www.leuteforum.de

    New kind to realize large scalable projects with jQuery: jQuery SDK

  3. #3
    messmar messmar ist offline Mitglied Brokat
    Registriert seit
    Oct 2003
    Ort
    München (Bayern)
    Beiträge
    434
    Hi,

    danke schon mal und sorry für die sehr verspätete Antwort...

    Was genau möchtest du machen?
    Ich wollte alle Textfelder für FirstName, LastName und danach email durchlaufen, abchecken, ob alle leer sind und wenn ja, dann einen Fehler ausgeben.

    Der user muss mindesten ein Feld pro Serie (Firstname, Lastname und email) eingeben.

    Danke und gruß
    Messmar
     

  4. #4
    Quaese Quaese ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Feb 2004
    Beiträge
    3.451
    Hi,

    du könntest ein Array erstellen, dessen Schlüssel den zu suchenden Teilstrings entsprechen. Als Wert wird ein Objekt zugewiesen, über das ermittelt werden kann, ob mindestens ein Feld innerhalb einer Gruppe ausgefüllt wurde.

    Über den Schlüssel wird getestet, ob es sich beim aktuellen Textfeld um ein gesuchtes Element handelt. Ist das Feld gefüllt, wird das Objekt entsprechend geändert.

    Beispiel:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    function testeMich(){
      // Array mit den zu testenden Namen als Schlüssel
      var arrTest = [];
      arrTest["FName"] = {ok: false};
      arrTest["LName"] = {ok: false};
      arrTest["eMail"] = {ok: false};
     
      for(i=0; i<document.forms[0].elements.length; i++){
        if(document.forms[0].elements[i].type == 'text'){
          var getName = document.forms[0].elements[i].name;
     
          for(var strKey in arrTest){
            // Falls das aktuelle Element den gewünschen Teilstring enthält
            if(getName.match(new RegExp(strKey))){
              // Falls das aktuelle Element NICHT leer ist -> Flag setzen
              if(document.forms[0].elements[i].value!=""){
                arrTest[strKey].ok = true;
                break;
              }
            }
          }
        }
      }
     
      for(var strKey in arrTest){
        if(!arrTest[strKey].ok)
          alert(strKey + " muss mindestens einen Wert enthalten.");
      }
     
      return arrTest;
    }
    Ciao
    Quaese
     
    Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
    ----
    Der "Fortsetzungsroman" auf www.leuteforum.de

    New kind to realize large scalable projects with jQuery: jQuery SDK

  5. #5
    messmar messmar ist offline Mitglied Brokat
    Registriert seit
    Oct 2003
    Ort
    München (Bayern)
    Beiträge
    434
    Hi Quaese,

    Zitat Zitat von Quaese Beitrag anzeigen
    Hi,
    du könntest ein Array erstellen....
    vielen Dank

    Das ist auch ne Möglichkeit und zwar besser wie meine, da ich ne nicht so elgenate Lösung gecodet habe:

    HTML-Code:
    function checkFields(){
                            var allFnameEmpty = true;
                            var allLnameEmpty = true;
                            var allEmailEmpty = true;
    
                            for(i=0; i<document.forms[0].length; i++){
                                if(document.forms[0].elements[i].type == 'text'){
                                    var getName = document.forms[0].elements[i].name;
    
                                    if(getName.match('FName')){
                                        var getThemAll = document.forms[0].elements[i];
    
                                        if(getThemAll.value != ''){
                                            allFnameEmpty = false;
                                        }
                                    }
    
                                    if(getName.match('LName')){
                                        var getThemAll = document.forms[0].elements[i];
    
                                        if(getThemAll.value != ''){
                                            allLnameEmpty = false;
                                        }
                                    }
    
                                    if(getName.match('eMail')){
                                        var getThemAll = document.forms[0].elements[i];
    
                                        if(getThemAll.value != ''){
                                            allEmailEmpty = false;
                                        }
                                    }
                                }
                            }
    
                            if (allFnameEmpty){
                                alert('xxxx');
                                return false;
                            }
    
                            if (allLnameEmpty){
                                alert('xxxx');
                                return false;
                            }
    
                            if (allEmailEmpty){
                                alert('xxxx');
                                return false;
                            }
    
                            alert('xxxx');
                                return false;
                            }
    }
     

Ähnliche Themen

  1. Alle Tasten durchlaufen
    Von DerStauner im Forum .NET Windows Forms
    Antworten: 2
    Letzter Beitrag: 19.01.09, 17:29
  2. alle inputfelder mit name=blabla[] bekommen...
    Von Headymaster im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 22.08.08, 13:26
  3. Inputfelder abfragen ...
    Von -GS-Master im Forum PHP
    Antworten: 3
    Letzter Beitrag: 21.01.07, 20:42
  4. alle 64 Felder in einem Schachbrett durchlaufen
    Von abakuz im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 26.08.06, 00:03
  5. Alle 10 Abfragen Text anzeigen.
    Von boardcash im Forum PHP
    Antworten: 6
    Letzter Beitrag: 13.05.06, 01:07