Ich habe eine Ext.form.Panel
in% Ext.window
. Die Höhe des Formulars ist größer als die Fensterhöhe, daher habe ich einen vertikalen Bildlauf über das Fenster.
Bei der Validierung von Formularfeldern (bei validitychange
event) springt die Bildlaufleiste nach oben.
Wie vermeide ich dieses Verhalten?
Ich habe versucht herauszufinden, warum eine meiner Formulare hochgeladen wurde und andere nicht. Es stellte sich heraus, dass ich vergessen habe, den Layout-Manager explizit anzugeben, und dass der Standard-Layout-Manager (Anker) bei der Gültigkeitsänderung nach oben geblättert hat, während das vbox
-Layout dies nicht getan hat. Während alles genau gleich aussah (vbox mit align: 'stretch'
), verhielt es sich anders, wenn der Fehler entweder angezeigt oder versteckt wurde.
Ich habe das gleiche Problem :(
Ich habe einen gruseligen Workaround gemacht (es funktioniert zu 80%) Manchmal springt es immer noch nach oben. Sie sollten wissen, dass ich ein Fenster mit einem Layout von 'Form' habe. Wenn Sie ein Fenster mit (zum Beispiel) einem Layout von 'fit' mit einem xtype von 'form' haben - müssen Sie den Code vielleicht ein wenig ändern. Zum Beispiel würde die Zeile el.child (". X-window-body", fasle) nicht funktionieren.
%Vor%Wie Sie sehen können, höre ich das scroll-Ereignis und safe und setze die Bildlaufleiste zurück. Manchmal (besonders wenn Sie sehr schnell in einem Textfeld schreiben) kommen die Ereignisse in einer anderen Reihenfolge und die Seite springt immer noch nach oben. Manchmal sieht man auch, dass es flackert (wenn es zu lange dauert, um es auf die ursprüngliche Position zurückzusetzen).
Also ... Wie gesagt, es ist ein gruseliger Workaround. Wenn Sie eine bessere Lösung finden, lassen Sie es mich bitte wissen.
BEARBEITEN
Ich fand auch heraus, dass die Option grow auf einem Textareafield einer der Unruhestifter war.
%Vor%