Array dynamisch mit Objekten füllen
Erik
- javascript
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
Hi Erik,
ich denke ich könnte dir da helfen. Ich denke da an den "eval()" Befehl. Erst einmal müsstest du den Befehl "als String" zusammenbasteln, etwa so:
var arrayString = "myArray[i] = (";
/* so, jetzt werden deine Items z.B. über eine Schleife
eingefügt... ca. so:
"Zeile" + "I" + ".value" <-- usw. ich denke
das sollte sich
dynamisch
lösen lassen
Der fertige String sollte dann exakt wie der Befehl
aussehen, z.B: 'myArray[i] = ("item1", "item2");'
*/
eval(arrayString);
/* mit diesem Befehl wird der String arrayString als
Befehl interpretiert */
Das sollte etwa so funktionieren. Das ist natürlich jetzt keine vollständige Lösung, aber ich hoffe, es hilft Dir weiter.
Gruß
Thomas J.
[mailto:t.jaworski@finec.de]
Hi Erik.
Meine Frage ist nun, wie kann ich das Array (Zeile 5 -7) dynamich mit der meinen Objeketen Füllen???
Meine neugierige Gegenfrage: Hast Du es schon mal mit den JS-Funktionen slice() und concat() probiert,
nebst weiteren Array-Befehlen, die ab HTML 4.0 zur Verfügung stehen sollen? Ich wollte vor wenigen Tagen
auch ein Array dynamisch beschreiben und habe es mit den o. g. Funktionen nicht geschafft, weil diese
scheinbar nicht mit allen Browsern der 4er-Generation laufen... Oder aber in SelfHTML wurde eine falsche
Angabe zu den Funktions-Übergabewerten gemacht :-?
an die Grenzen stoßende Grüße
Philip
Hallo
Meine neugierige Gegenfrage: Hast Du es schon mal mit den JS-Funktionen slice() und concat() probiert,
Ist an dieser Stelle unangebracht, da ja nur weitere Elemente angehaengt werden sollen. Das geht besser mit
array[array.length] = new_element;
oder, falls Du einen JS1.2-faehigen Browser hast
array.push(new_element)
nebst weiteren Array-Befehlen, die ab HTML 4.0 zur Verfügung stehen sollen? Ich wollte vor wenigen Tagen
auch ein Array dynamisch beschreiben und habe es mit den o. g. Funktionen nicht geschafft, weil diese
scheinbar nicht mit allen Browsern der 4er-Generation laufen... Oder aber in SelfHTML wurde eine falsche
Angabe zu den Funktions-Übergabewerten gemacht :-?
Nun ja, Selfhtml ist an solchen Stellen tatsaechlich nicht sehr verlaesslich. Wie auch immer, slice(), splice() und concat() sind allesamt JS1.2-Methoden, und der IE4 kann nun mal nur JS1.1 (vollstaendig??).
http://developer.netscape.com/docs/manuals/js/client/jsref/array.htm
So lange
Hey Calocybe,
langsam beginnt mein Bildungsurlaub hier im SelfHTML-Forum Früchte zu tragen. Das Hotel buche ich
nächste Saison wieder :o)
bis demnächst
Philip
array[array.length] = new_element;
oder, falls Du einen JS1.2-faehigen Browser hast
array.push(new_element)Nun ja, Selfhtml ist an solchen Stellen tatsaechlich nicht sehr verlaesslich. Wie auch immer, slice(), splice() und concat() sind allesamt JS1.2-Methoden, und der IE4 kann nun mal nur JS1.1 (vollstaendig??).
http://developer.netscape.com/docs/manuals/js/client/jsref/array.htmSo lange