Domino 9 und frühere Versionen > ND9: Entwicklung

Felder in einer XPages leeren sich

(1/3) > >>

MLoy:
Hallo,

ich hab hier ein merkwürdiges Problem.

In einer XPage gibt es mehrere bearbeitbare Testfelder (Beispiel siehe unten).

Kurze Erklärung:

* Wenn im Feld Text verändert wird (onInput), soll sofort ein Kennzeichen (Icon) ausgeblendet werden
* Wenn das Feld verlassen wird (onChange), soll in Abhängigkeit vom Inhalt die CSS-Klasse geändert werden (Darstellung Pflichtfelder)
Bitte jetzt nicht nach Sinnhaftigkeit o.ä. fragen. Der Kunde braucht das genau so.

Grundsätzlich funktioniert das Ganze sehr gut.
Allerdings kommt es vor, dass während der Eingabe das Feld (und auch alle anderen Textfelder in der XPage) geleert werden.
Nach drücken der F5-Taste tauchen die Inhalte dann (meistens) wieder auf.

Hat jemand eine Idee?
Der Fehler tritt bei manchen Usern verstärkt auf, mein manchen nie (bei identischen Browsern).
Auch mit aktiviertem bzw deaktiviertem Cache wurde getestet.

Vielen Dank & Viele Grüße
Marcus



--- Code: ---<xp:inputText
id="Strasse_1"
tabindex="1">
<xp:eventHandler
event="oninput"
submit="true"
refreshMode="partial"
refreshId="Adresse_OK_1"
id="eventHandler21">
<xp:this.action>
<![CDATA[#{javascript:getComponent("Adresse_OK_1").setRendered(false)}]]>
</xp:this.action>
</xp:eventHandler>
<xp:this.styleClass>
<![CDATA[#{javascript:return fieldValidate(this);}]]>
</xp:this.styleClass>
<xp:eventHandler
event="onblur"
submit="true"
refreshMode="partial"
refreshId="Strasse_1"
id="eventHandler47">
</xp:eventHandler>
</xp:inputText>
--- Ende Code ---



--- Code: ---XPage Properties:
xsp.ajax.renderwholetree=false
xsp.client.script.radioCheckbox.ie.onchange.trigger=early-onclick
xsp.error.page.default=true
xsp.library.depends=com.ibm.xsp.extlib.library,org.openntf.xsp.bootstrap.library,com.ibm.xsp.extlib.relational.library
xsp.persistence.mode=basic
xsp.resources.aggregate=true
xsp.theme=oneuiv2.1
xsp.session.timeout=120
xsp.partial.update.timeout=120
--- Ende Code ---

Tim Pistor:
Muss es denn sein, dass bei jedem Tastendruck eine Kommunikation mit dem Server angestoßen wird? Könnte man das Icon (zumindest während der Bearbeitungsphase) nicht auch clientseitig ausblenden?

Je nach Tippgeschwindigkeit und Reaktionszeit wird der arme Server da wohl nicht hinterherkommen...

Ergänzung: Schau dir mal beim Tippen in diesen Feldern via FireBug o.ä. die Konsole oder den Reiter Netzwerk an. Da müsste es, wenn ich das so richtig interpretiere, "ganz schön abgehen"...

MLoy:
Das Problem ist nur, dass ich an einer anderen Stelle im SSJS wissen muss ob sich was geändert hat, sprich ob Icon ein bzw. ausgeblendet ist.
Eigentlich würde es ja auch reichen im onChange das Icon auszublenden, allerdings hab ich dann das Problem das der User, wenn er das Feld verlässt um beispielsweise einen Button anzuklicken, den Button 2 mal anklicken muss, damit der dort hinterlegte Code ausgeführt wird

Tim Pistor:

--- Zitat von: MLoy am 02.12.15 - 07:24:14 ---Das Problem ist nur, dass ich an einer anderen Stelle im SSJS wissen muss ob sich was geändert hat, sprich ob Icon ein bzw. ausgeblendet ist.
--- Ende Zitat ---

Ohne das "große Ganze" zu kennen kann man da leider nur schwer weiterhelfen. Sobald SSJS im Spiel wäre, werden die Formulardaten ja eh übertragen und kannst dir den Feldwert holen.


--- Zitat von: MLoy am 02.12.15 - 07:24:14 ---... allerdings hab ich dann das Problem das der User, wenn er das Feld verlässt um beispielsweise einen Button anzuklicken, den Button 2 mal anklicken muss, damit der dort hinterlegte Code ausgeführt wird

--- Ende Zitat ---

Klingt nach dem Problem mit 2 parallelen Ajax-Calls gegen die XPage. Das geht nie gut. Gleichzeitig das Icon aktualisieren und den Button ausführen. Das ist ein Wettrennen... Firebug (etc.) würde das gut verdeutlichen..


--- Code: ---...<![CDATA[#{javascript:getComponent("Adresse_OK_1").setRendered(false)}]]>...
--- Ende Code ---

Was passiert eig. wenn das Feld erst leer ist... du "123" eingibst, und es dannach wieder löscht. Wird das Icon dann wieder eingeblendet?

Sven Hasselbach:

--- Zitat von: Tim Pistor am 02.12.15 - 08:18:51 ---

--- Zitat von: MLoy am 02.12.15 - 07:24:14 ---... allerdings hab ich dann das Problem das der User, wenn er das Feld verlässt um beispielsweise einen Button anzuklicken, den Button 2 mal anklicken muss, damit der dort hinterlegte Code ausgeführt wird

--- Ende Zitat ---

Klingt nach dem Problem mit 2 parallelen Ajax-Calls gegen die XPage. Das geht nie gut. Gleichzeitig das Icon aktualisieren und den Button ausführen. Das ist ein Wettrennen... Firebug (etc.) würde das gut verdeutlichen..


--- Ende Zitat ---
Hört sich eher nach geblockten Partial Refreshs an, so dass der erste Klick gar nicht erst ausgeführt wird.

Was mich verwundert ist, dass das überhaupt funktionieren soll; wurde die Komponente Adresse_OK_1 auf rendered = false gesetzt, geht der Partial Refresh des oninput events ins Leere...

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln