Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Thobz am 01.11.07 - 09:19:38

Titel: JavaScript Feldnamen zusammen bauen
Beitrag von: Thobz am 01.11.07 - 09:19:38
Hallo zusammen,

ich würde gerne Feldnamen per JavaScript berechnen lassen.
Also ich habe Felder die Menge_01 , Menge_02 .... Menge_n heißen,
ich möchte nicht jedes Feld einzeln ansprechen, sondern die Zahlen berechen lassen.

So ca. doc.Menge_+Variable.value     , könnt iht mir da einen Tip geben, wie
ich da den Syntax schreiben muss.

Vielen Dank,

Thomas
Titel: Re: JavaScript Feldnamen zusammen bauen
Beitrag von: flaite am 01.11.07 - 09:59:02
verschiedene Möglichkeiten.

1. document.getElementByName('FELDNAME'); und
2. document.getElementByID('ID_FELDNAME'); (in diesem Fall mußt du aber den Feldern eine eindeutige ID geben (keine schlechte Idee).

Ausserdem gibts in JavaScript eine eval Funktion (z.B. hier beschrieben: http://www.devmag.net/tricks/js/javascript_25.htm).

Oder das geht vielleicht auch:
document.forms[0]['FELDNAME'];

FELDNAME kannst du natürlich einfach mit String-Konkenation (spell?) zusammenbasteln. 
Code
var feldName = "";  
for (i=0; i < SOMEVALUE;i++) {
 feldName = "Menge_0" + i; 
 // einer der obigen aktionen 
}

Tipp: Entwickele mit Firefox und benutze das plug-in Firebug (try google). 
Titel: Re: JavaScript Feldnamen zusammen bauen
Beitrag von: Thobz am 01.11.07 - 10:11:08
Hallo und danke für die Antwort !


Gruß Thomas
Titel: Re: JavaScript Feldnamen zusammen bauen
Beitrag von: Thobz am 01.11.07 - 10:41:43
Hallo,

mein Code sind nun so aus :

Code
var doc = document.forms[0]
var i ;
var feldname;
feldname=""

i = 0;



	feldname="Menge_" +i;
	if (doc.getElementByName('feldname')!="") {
		alert (doc.getElementByName('feldname'))
}


Aber er will nich :-(, was is da den falsch ??
Titel: Re: JavaScript Feldnamen zusammen bauen
Beitrag von: flaite am 01.11.07 - 11:41:52
Ohne die ' bei Feldname. Ist ja schliesslich kein Literal, sondern eine Variable.
Ausserdem gibt getElementByName glaub ich eine ElementCollection zurück.
Du kannst ja mal die anderen Varianten ausprobieren.
Komm da später noch drauf zurück, bin z.Zt. im Stress.

Code
var form = document.forms[0]
var i ;
var feldname;
feldname=""

i = 0;



	feldname="Menge_" +i;
	if ((form[feldname]) && (form[feldname].value !="")) {
		alert (form[feldname].value)
}
Titel: Re: JavaScript Feldnamen zusammen bauen
Beitrag von: Thobz am 01.11.07 - 11:52:41
Hallo Axel,

danke ich habe es. Die Fehler waren die ' ' beim Feldnamen und es heißt -getElementsbyName-.
Das s wurde vergessen. Vielen Dank !
Titel: Re: JavaScript Feldnamen zusammen bauen
Beitrag von: flaite am 01.11.07 - 12:03:34
Das geht auch. 
Code
function checkfields() {
	var form = document.forms[0]
var i ;
var feldname;
var theElement;

feldname=""

i = 0;



	feldname="field" +i;
	theElement = form.elements[feldname];
	
		alert (theElement.value);

	
}
Zum schnellen Ausprobieren ist btw. auch das ganz ok:
http://www.aptana.org/