Eigenschaft eines Feldes mittel Variable ändern

Alles was sich mit dem Thema dynamische XML Formulare auf Basis des LiveCycleDesigners beschäftigt
Antworten
xjk2572552l
Beiträge: 15
Registriert: 24.10.2011, 10:59

Eigenschaft eines Feldes mittel Variable ändern

Beitrag von xjk2572552l » 11.04.2014, 12:44

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:

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Eigenschaft eines Feldes mittel Variable ändern

Beitrag von nele_sonntag » 13.04.2014, 17:32

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

xjk2572552l
Beiträge: 15
Registriert: 24.10.2011, 10:59

Eigenschaft eines Feldes mittel Variable ändern

Beitrag von xjk2572552l » 13.04.2014, 18:10

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é

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Eigenschaft eines Feldes mittel Variable ändern

Beitrag von nele_sonntag » 13.04.2014, 20:13

Da ich den Aufbau Deiner Funktion nicht kenne, nur dieser allgemeine Syntax:

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";
}
Test ist jetzt nur mit presence. Mandatory kannst Du genauso einbauen..

Code: Alles auswählen

Textfield1.mandatory = "error";
Hoffe, das ist das, was Dir fehlt.

LG Mandy
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

xjk2572552l
Beiträge: 15
Registriert: 24.10.2011, 10:59

Eigenschaft eines Feldes mittel Variable ändern

Beitrag von xjk2572552l » 14.04.2014, 16:39

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é


Antworten