Hallo zusammen,
ich bin aktuell auf der Suche nach einer Möglichkeit eine Eigenschaft eines Feldes mittels Variable zu ändern.
Etwas in die Richtung:
var presHid = 'presence = "hidden"';
var valiErr = 'validate.nullTest = "error"';
if ( bedingung == true )
feld."" + presHid + ""; <--- Hier fehlts mir an der Syntax
else
feld."" + valiErr + ""; <--- Hier fehlts mir an der Syntax
Könnt Ihr mir hier weiterhelfen?
Beste Grüße :dude:
Eigenschaft eines Feldes mittel Variable ändern
-
- Beiträge: 15
- Registriert: 24.10.2011, 10:59
- nele_sonntag
- Beiträge: 2742
- Registriert: 04.05.2009, 15:12
- Wohnort: Frankfurt
- Kontaktdaten:
Eigenschaft eines Feldes mittel Variable ändern
Ich frage erst einmal andersherum, warum wilst Du es mit Hilfe einer Variablen lösen? Vielleicht magst Du einfach mal Deine Aufgabenstellung schildern?
LG Mandy
LG Mandy
-
- Beiträge: 15
- Registriert: 24.10.2011, 10:59
Eigenschaft eines Feldes mittel Variable ändern
Hallo Mandy,
vielen Dank für deine Antwort.
Naja mal schaun ; ) Ich hab mir eine Funktion gebastelt, die alle Felder in einem Protokoll durchgeht und sie Anhand von dem Feldnamen erkennt...
Ich möchte dieser Funktion nun Eigenschaften mitgeben um in dem Formular aufgrund eines Ereignisses ein Feld unsichtbar oder z.B. vom Druck ausnehmen zu können. Du denkst jetzt wahrscheinlich, dass ich das ja einfach machen kann, wenn ich den Namen und die Seite weiß in dem sich das Feld befindet. Das Problem dabei ist allerdings, dass ich diese Funktion für mehere Formulare brauche und es nicht immer jedes Feld in jedem Formular gibt. Ich habe die Erfahrung gemacht, dass wenn ich einen Java Script in einem Formular ausführe in dem ich z.B. das Feld num_test unsichtbar machen möchte, es dieses Feld aber in dem Form nicht gibt, bricht der Script ab. Vielleicht, kann ja auch mittels if Bedinung erkannt werden, ob ein Feld existiert, aber so eine Möglichkeit konnte ich nicht finden.
Also gehe ich jetzt mittels for Schleife die Länge aller Seiten, dann die Länge aller Felder, deren unter Felder usw. durch und untersuche die "Kind-Objekte" der unterschiedlichen Elemente auf die Feldnamen.
Vielleicht gibts ja auch eine einfachere Lösung. Aber wie gesagt, ich habe sonst nichts finden können.
Ich hoffe das war jetzt halbwegs verständlich.
lg René
vielen Dank für deine Antwort.
Naja mal schaun ; ) Ich hab mir eine Funktion gebastelt, die alle Felder in einem Protokoll durchgeht und sie Anhand von dem Feldnamen erkennt...
Ich möchte dieser Funktion nun Eigenschaften mitgeben um in dem Formular aufgrund eines Ereignisses ein Feld unsichtbar oder z.B. vom Druck ausnehmen zu können. Du denkst jetzt wahrscheinlich, dass ich das ja einfach machen kann, wenn ich den Namen und die Seite weiß in dem sich das Feld befindet. Das Problem dabei ist allerdings, dass ich diese Funktion für mehere Formulare brauche und es nicht immer jedes Feld in jedem Formular gibt. Ich habe die Erfahrung gemacht, dass wenn ich einen Java Script in einem Formular ausführe in dem ich z.B. das Feld num_test unsichtbar machen möchte, es dieses Feld aber in dem Form nicht gibt, bricht der Script ab. Vielleicht, kann ja auch mittels if Bedinung erkannt werden, ob ein Feld existiert, aber so eine Möglichkeit konnte ich nicht finden.
Also gehe ich jetzt mittels for Schleife die Länge aller Seiten, dann die Länge aller Felder, deren unter Felder usw. durch und untersuche die "Kind-Objekte" der unterschiedlichen Elemente auf die Feldnamen.
Vielleicht gibts ja auch eine einfachere Lösung. Aber wie gesagt, ich habe sonst nichts finden können.
Ich hoffe das war jetzt halbwegs verständlich.
lg René
- nele_sonntag
- Beiträge: 2742
- Registriert: 04.05.2009, 15:12
- Wohnort: Frankfurt
- Kontaktdaten:
Eigenschaft eines Feldes mittel Variable ändern
Da ich den Aufbau Deiner Funktion nicht kenne, nur dieser allgemeine Syntax:
Test ist jetzt nur mit presence. Mandatory kannst Du genauso einbauen..
Hoffe, das ist das, was Dir fehlt.
LG Mandy
Code: Alles auswählen
var presObjH = "hidden";
var presObjV = "visible";
var mandObj = "error";
if(this.caption.value.text.value =="hidden"){
Textfeld1.presence = presObjH;
this.caption.value.text.value = "visible";
}else if(this.caption.value.text.value =="visible"){
Textfeld1.presence = presObjV;
this.caption.value.text.value = "hidden";
}
Code: Alles auswählen
Textfield1.mandatory = "error";
LG Mandy
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
-
- Beiträge: 15
- Registriert: 24.10.2011, 10:59
Eigenschaft eines Feldes mittel Variable ändern
Hey Mandy,
also bei mir würde das so aussehen:
// SCRIPT
var nX = 0;
fieldNames[fnCount] = new Array();
fieldNames[fnCount][nX] = new Array();
fieldNames[fnCount][nX++] = "fields name";
fieldNames[fnCount][nX++] = 'presence = "hidden"';
fieldNames[fnCount][nX++] = 'bind.match = "none"';
for ( l = 0; l < fieldNames.length; l++ )
{ // Go through all procedures
if ( field.name == fieldNames[l][m] )
{
for ( m = 0; m < fieldNames[l].length; m++)
{ // Go through all fieldnames
// HERE
field.fieldNames[l][m];
}
}
}
// SCRIPT
Mit deiner Variante müsste ich aber in die for Schleife eine Abfrage einbaun und die Logik der Arrays überarbeiten.
// SCRIPT
var nX = 0;
fieldNames[fnCount] = new Array();
fieldNames[fnCount][nX] = new Array();
fieldNames[fnCount][nX++] = "fields name";
fieldNames[fnCount][nX++] = "hidden";
fieldNames[fnCount][nX++] = "presence";
fieldNames[fnCount][nX++] = "none";
fieldNames[fnCount][nX++] = "bind";
for ( l = 0; l < fieldNames.length; l++ )
{ // Go through all procedures
if ( field.name == fieldNames[l][m] )
{
for ( m = 0; m < fieldNames[l].length; m++)
{ // Go through all fieldnames
if ( m % 2 == 0 && fieldNames[l][m] == "presence" )
field.presence = "" + fieldNames[l][m-1] + "";
else if ( m % 2 == 0 && fieldNames[l][m] == "bind" )
field.bind.match = "" + fieldNames[l][m-1] + "";
}
}
}
// SCRIPT
Die erste Variante wäre aber dynamischer und könnte in Zukunft einfacher ausgebaut werden.
Vor allem aber, kann dann jedem Feld einfach eine Eigenschaft oder ein Attribute oder wie auch
immer der Teil der Syntax genannt wird
, zugefügt werden ohne dass die Funktion umgeschrieben
werden muss...
Wenn es diese Möglichkeit nicht gibt, kann man nichts machen. Aber Fragen wollte ich schon
Ich hoffe die Beispiele sind halbwegs logisch und vor allem auch fehlerfrei.
lg René
also bei mir würde das so aussehen:
// SCRIPT
var nX = 0;
fieldNames[fnCount] = new Array();
fieldNames[fnCount][nX] = new Array();
fieldNames[fnCount][nX++] = "fields name";
fieldNames[fnCount][nX++] = 'presence = "hidden"';
fieldNames[fnCount][nX++] = 'bind.match = "none"';
for ( l = 0; l < fieldNames.length; l++ )
{ // Go through all procedures
if ( field.name == fieldNames[l][m] )
{
for ( m = 0; m < fieldNames[l].length; m++)
{ // Go through all fieldnames
// HERE
field.fieldNames[l][m];
}
}
}
// SCRIPT
Mit deiner Variante müsste ich aber in die for Schleife eine Abfrage einbaun und die Logik der Arrays überarbeiten.
// SCRIPT
var nX = 0;
fieldNames[fnCount] = new Array();
fieldNames[fnCount][nX] = new Array();
fieldNames[fnCount][nX++] = "fields name";
fieldNames[fnCount][nX++] = "hidden";
fieldNames[fnCount][nX++] = "presence";
fieldNames[fnCount][nX++] = "none";
fieldNames[fnCount][nX++] = "bind";
for ( l = 0; l < fieldNames.length; l++ )
{ // Go through all procedures
if ( field.name == fieldNames[l][m] )
{
for ( m = 0; m < fieldNames[l].length; m++)
{ // Go through all fieldnames
if ( m % 2 == 0 && fieldNames[l][m] == "presence" )
field.presence = "" + fieldNames[l][m-1] + "";
else if ( m % 2 == 0 && fieldNames[l][m] == "bind" )
field.bind.match = "" + fieldNames[l][m-1] + "";
}
}
}
// SCRIPT
Die erste Variante wäre aber dynamischer und könnte in Zukunft einfacher ausgebaut werden.
Vor allem aber, kann dann jedem Feld einfach eine Eigenschaft oder ein Attribute oder wie auch
immer der Teil der Syntax genannt wird

werden muss...
Wenn es diese Möglichkeit nicht gibt, kann man nichts machen. Aber Fragen wollte ich schon

Ich hoffe die Beispiele sind halbwegs logisch und vor allem auch fehlerfrei.

lg René