Bildfeld auf "change" überprüfen
Bildfeld auf "change" überprüfen
Hallo Zusammen,
Ich habe in meinem Formular ein dynamisches Bildfeld welches mit einem Demobild gefüllt ist. ich möchte nun sobald der User ein anderes Bild auswählt (change/click Ereignis) das Hinweitexte o.ä. verschwinden? Wie kann man das abfragen?
Viele Grüße und Danke
NTCNC9
Ich habe in meinem Formular ein dynamisches Bildfeld welches mit einem Demobild gefüllt ist. ich möchte nun sobald der User ein anderes Bild auswählt (change/click Ereignis) das Hinweitexte o.ä. verschwinden? Wie kann man das abfragen?
Viele Grüße und Danke
NTCNC9
Bildfeld auf "change" überprüfen
Wo werden die Hinweise angezeigt? Separates Textfeld oder in der Beschriftung?
Bildfeld auf "change" überprüfen
In einem separaten textfeld.
Bildfeld auf "change" überprüfen
Ok,
du brauchst 2 Skripte.
Das erste im initialize:Event des Bildfeldes:
Das zweite im change:Event.
Was macht es?
Das erste Skript ermittelt die Datenlänge des Base64-Strings des Bildfeldes und speichert diesem in Extras-Objekt.
Das zweite Skript vergleicht dann die Datenlänge des neu eingefügten Bildes mit der gespeicherten und ändert entsprechend den Inhalt eines Textfeldes.
du brauchst 2 Skripte.
Das erste im initialize:Event des Bildfeldes:
Code: Alles auswählen
if (this.extras.nodes.namedItem("prevImage") === null) {
this.extras.nodes.append(xfa.form.createNode("extras", "prevImage"));
this.extras.prevImage.nodes.append(xfa.form.createNode("integer", "dataLength"));
while (this.extras.prevImage.nodes.length > 0) {
this.extras.prevImage.nodes.remove(this.extras.prevImage.nodes.item(this.extras.prevImage.nodes.length - 1));
}
var newData = xfa.form.createNode("integer", "dataLength");
newData.value = this.value.oneOfChild.value.length;
this.extras.prevImage.nodes.append(newData);
}
Code: Alles auswählen
var prevData = this.extras.prevImage.dataLength.value;
var newData = this.value.oneOfChild.value.length;
this.extras.prevImage.dataLength.value = newData;
if (prevData !== newData) {
TextField1.rawValue = "Es wurde ein neues Bild eingefügt.";
} else {
TextField1.rawValue = "Es wurde dasselbe Bild eingefügt.";
}
Das erste Skript ermittelt die Datenlänge des Base64-Strings des Bildfeldes und speichert diesem in Extras-Objekt.
Das zweite Skript vergleicht dann die Datenlänge des neu eingefügten Bildes mit der gespeicherten und ändert entsprechend den Inhalt eines Textfeldes.
Bildfeld auf "change" überprüfen
Hey,
Danke dir, funktioniert gut, ganz schön aufwendig. Hätte nicht gedacht das man solche Klimmzüge machen muss.
cheerz
Danke dir, funktioniert gut, ganz schön aufwendig. Hätte nicht gedacht das man solche Klimmzüge machen muss.
cheerz
Bildfeld auf "change" überprüfen
Ja,
bei Bildern kann man leider nicht mit xfa.event.newText mit xfa.event.prevText vergleichen, daher muss das etwas umständlicher gelöst werden.
Aber Hauptsache es geht.
bei Bildern kann man leider nicht mit xfa.event.newText mit xfa.event.prevText vergleichen, daher muss das etwas umständlicher gelöst werden.
Aber Hauptsache es geht.
Bildfeld auf "change" überprüfen
Kann man eigentlich Bilddaten aus einem normalen Bildfeld auslesen und in ein anderes Bildfeld einlesen?
Bildfeld auf "change" überprüfen
Klar.
Code: Alles auswählen
Bildfeld2.value.oneOfChild.value = Bildfeld1.value.oneOfChild.value
Bildfeld auf "change" überprüfen
Hallo,
Anbei einfach mal ne Frage zum Frust ablassen:
Warum heisst das "unsichtbar"-machen von Bildern "invisible" und nicht "hidden"?
"hidden" funktioniert auch aber lässt sich mit "visible" nicht wieder einblenden?
@radzmar:
Das mit dem Bildinhalt verschieben
Ich würde gerne von einem statischen Bild dieses Bild auf einer anderen Seite "auftauchen" lassen wenn das entsprechende Optionsfeld aktiviert wurde.
Viele Grüße und Danke
Anbei einfach mal ne Frage zum Frust ablassen:
Warum heisst das "unsichtbar"-machen von Bildern "invisible" und nicht "hidden"?
"hidden" funktioniert auch aber lässt sich mit "visible" nicht wieder einblenden?
@radzmar:
Das mit dem Bildinhalt verschieben
funktioniert leider nicht.Bildfeld2.value.oneOfChild.value = Bildfeld1.value.oneOfChild.value
Ich würde gerne von einem statischen Bild dieses Bild auf einer anderen Seite "auftauchen" lassen wenn das entsprechende Optionsfeld aktiviert wurde.
Viele Grüße und Danke

Bildfeld auf "change" überprüfen
Achso, hatte ich leider nicht erwähnt, dass die zuvor genannte Methode nur klappt, wenn das Bild eingebettet ist.
Wenn es nicht eingebettet ist (empfohlen) geht es aber auch.
Man kopiert einfach die contentType und href-Attribute des Quellbildes auf das andere Bild.
Der Vorteil dabei ist, dass beide Bilder dieselbe Bildquelle im PDF-Datenstrom, somit wächst die Dateigröße beim Speichern nicht jedes mal um die Datenmenge des Bildes an.
Die Beispiele anbei verdeutlichen das mal.
Beide sind anfangs 460KB groß, aber während die mit dem verlinkten Bild auch nach dem Kopieren des Bildes nahezu unverändert groß ist (464KB), ist die mit dem eingebetteten Bild schon merklich angeschwollen (488KB).
Wenn es nicht eingebettet ist (empfohlen) geht es aber auch.
Man kopiert einfach die contentType und href-Attribute des Quellbildes auf das andere Bild.
Code: Alles auswählen
Bild2.value.image.contentType = "application/octet-stream"
Bild2.value.image.href = Bild1.value.image.href
Die Beispiele anbei verdeutlichen das mal.
Beide sind anfangs 460KB groß, aber während die mit dem verlinkten Bild auch nach dem Kopieren des Bildes nahezu unverändert groß ist (464KB), ist die mit dem eingebetteten Bild schon merklich angeschwollen (488KB).
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.