Calocybe: Loop

Beitrag lesen

Hi!

Ok, diesmal war's schon verstaendlicher. *g* Du hast also eine Anzahl y Textfelder (INPUT TYPE=TEXT), die die Namen CallTo1 bis CallToy tragen, die Du daraufhin ueberpruefen willst, ob eine Zahl und nichts anderes drin steht.

var NUMBER_OF_CALLTO_INPUTS = 50;       // Anzahl y der zu ueberpruefenden Textfelder

function chkTextInput(input) {
    return (!isNaN(parseInt(input.value, 10)));
}

function chkFormular() {
    var i;
    var input;
    
    for (i=1; i<=NUMBER_OF_CALLTO_INPUTS; i++) {
        input = eval("document.Formular.CallTo" + i);   // erzeugt Referenz auf ein element (<../../tecbbda.htm>)
        if (!chkTextInput(input)) {
            alert("Keine Zahl eingegeben in Element " + input.name + "!");
            input.focus();
            return false;
        }
    }
    
    return true;
}

Falls Du die Anzahl der Elemente im vorneherein nicht weisst, musst Du statt der obigen For-Schleife eine Konstruktion aehnlich folgender verwenden:

for (input in document.Formular.elements) {
        if (input.name.substring(0, 6) != "CallTo") next;   // alle ueberspringen, die nicht mit "CallTo" beginnen
        if (!chkTextInput(input)) {
            alert("Keine Zahl eingegeben in Element " + input.name + "!");
            input.focus();
            return false;
        }
    }

Wie parseInt() auf leere Zeichenketten reagiert, also wenn nichts in ein Textfeld eingegeben wurde, weiss ich nicht. Notfalls musst Du in der chkTextInput()-Funktioon das noch extra pruefen.

Calocybe