Erik: dynamisches Einfügen von Objekten in ein Array

Hallo,

ich habe folgendes Problem. Mit Hilfe von ASP Script baue ich eine dynamische Anzahl von Eingabefeldern auf. Dabei unterscheiden sich die Felder dadruch, dass der Name sich jeweils vom Vorgänger durch ein zusätzliches I unterscheidet, alos NameI, NameII, NameIII usw.

Mit Hilfe von Javascript möchte ich nun die Eingabe für diese Felder überprüfen. Die Anzahl der Felder habe ich in einem Feld Names Zaehler.

function checkformular()
{
myArray new Array(documents.forms[0].Zaehler.value)
for ( var i = 1; i < documents.forms[0].Zaehler.value; i++){}
  myArray[i] = new Array(document.forms[0].ZeileI.value,
               document.forms[0].ZeileI.value, document.forms[
               [0].ZeileII.value, document.forms[0].ZeileIII.value)
for ( var i = 1; i < document.forms[0].Zaehler.value ; i++){
   if ((myArray[i] != "") && (myArray[i] != "Tach auch")) {
     suche = /\d\d.\d\d.\d\d\d\d/;
     if (!(suche.test(myArray[i]))) {
alert("Datum im Format dd.mm.jjjj angeben!");    
return false;}
if (CheckDate(myArray[i]) == false) {
   alert("Datum im Format dd.mm.jjjj angeben!");    
   return false;}
}
     }
return true; }

Meine Frage ist nun, wie kann ich das Array (Zeile 5 -7) dynamich mit der meinen Objeketen Füllen???

Danke
Erik

  1. Hallo Erik,

    ein Doppelposting war nicht nötig, deine Frage wurde gelesen. Ganz verstehe ich dein Script zwar nicht aber ein Fehler fällt ins Auge:

    myArray new Array(documents.forms[0].Zaehler.value)

    ^
    hier fehlt ein Gleichheitszeichen

    richtig: myArray = new Array(documents.forms[0].Zaehler.value)

    vielleicht liegt das schon daran.

    Viele Grüße

    Antje

  2. Hallo Erik!

    Deine Frage wird auch dann nicht besser beantwortet werden, wenn Du sie 10 mal stellst, also lass doch bitte das Wiederholungsposten.

    ich habe folgendes Problem. Mit Hilfe von ASP Script baue ich eine dynamische Anzahl von Eingabefeldern auf. Dabei unterscheiden sich die Felder dadruch, dass der Name sich jeweils vom Vorgänger durch ein zusätzliches I unterscheidet, alos NameI, NameII, NameIII usw.

    Dein angegebener Code ist mir ziemlich unverstaendlich. Ich schreibe einfach mal selbst eine Moeglichkeit auf.

    var input_fields;

    function CheckForm() {
        var f, i, element;
        
        
        f = document.forms[0];      // Form-Objekt fuer einfacheren Zugriff
        
        /* relevante Text-Objekte in eigenes Array */
        input_fields = [];                      // Inhalte loeschen
        for (i in f.elements) {                 // Alle elements durchlaufen
            element = f.elements[i];
            if (element.name.search(/^NameI+/) != -1)           // wenn Name dem Muster entspricht
                input_fields[input_fields.length] = element;    // Objekt speichern
        }
        
        /* die ausgesuchten Objekte testen */
        for (i in input_fields) {
            element = input_fields[i];
            if (element.value.search(/\d\d.\d\d.\d\d\d\d//) == -1) {
                alert("Datum im Element '" + element.name + "' im Format dd.mm.jjjj angeben!");
                element.focus();
                return false;
            }
        }
        
        return true;
    }

    Code ungetestet. Relevante Dokumentation:
    Form.elements Array
    http://developer.netscape.com/docs/manuals/js/client/jsref/form.htm#1193375
    for..in Statement
    http://developer.netscape.com/docs/manuals/js/client/jsref/stmt.htm#1004815
    String.search() Methode
    http://developer.netscape.com/docs/manuals/js/client/jsref/string.htm#1194332
    Text.focus() Methode
    http://developer.netscape.com/docs/manuals/js/client/jsref/text.htm#1194080

    Standard-Literatur-Empfehlungen:
    http://developer.netscape.com/docs/manuals/js/client/jsref/index.htm
    http://developer.netscape.com/docs/manuals/js/client/jsguide/index.htm
    Downloadbar auf:
    http://developer.netscape.com/docs/manuals/javascript.html

    Mit Hilfe von Javascript möchte ich nun die Eingabe für diese Felder überprüfen. Die Anzahl der Felder habe ich in einem Feld Names Zaehler.

    Wenn Du Dich an Deine Namenskonvention haeltst, brauchst Du den Zaehler nicht mehr.

    So lange, Calocybe