Hoi allen,
Wij hebben in onze webapplicatie een ontzettend lang formulier met zeker 40 velden onder elkaar.
Sommige van de acties op dit formulier veroorzaken een postback en halen bijvoorbeeld wat data op (dit gebeurt nog niet overal met ajax en gaan we in deze versie van het formulier ook niet meer aanpassen).
Wat er nu echter gebeurt is dat de diverse browsers (IE, FireFox en Chrome) anders verspringen qua positie na de postback.
Bij Chrome en IE komt bijvoorbeeld het veld waar op dat moment de focus ligt helemaal onderaan in beeld, maar in FireFox komt deze weer halverwege te staan. Dit verspringen is voor de gebruiker ontzettend irritant. Wij willen dat het formulier gewoon zijn positie onthoud van VOOR de postback. Dus geen verspringingen meer.
Ik heb dit getracht op te lossen met onderstaande code. De parameter scrollToTop wordt op true gezet zodra ik wil dat de gebruiker helemaal bovenaan begint (hier staat een validatie overzicht).
Naar top scrollen werkt prima, maar de andere optie window.scrollTo(0, document.body.scrollHeight); helaas niet. Iemand een idee?
* Formulier inkorten of verdelen over meerdere pagina's etc. is geen optie.
Wij hebben in onze webapplicatie een ontzettend lang formulier met zeker 40 velden onder elkaar.
Sommige van de acties op dit formulier veroorzaken een postback en halen bijvoorbeeld wat data op (dit gebeurt nog niet overal met ajax en gaan we in deze versie van het formulier ook niet meer aanpassen).
Wat er nu echter gebeurt is dat de diverse browsers (IE, FireFox en Chrome) anders verspringen qua positie na de postback.
Bij Chrome en IE komt bijvoorbeeld het veld waar op dat moment de focus ligt helemaal onderaan in beeld, maar in FireFox komt deze weer halverwege te staan. Dit verspringen is voor de gebruiker ontzettend irritant. Wij willen dat het formulier gewoon zijn positie onthoud van VOOR de postback. Dus geen verspringingen meer.
Ik heb dit getracht op te lossen met onderstaande code. De parameter scrollToTop wordt op true gezet zodra ik wil dat de gebruiker helemaal bovenaan begint (hier staat een validatie overzicht).
JavaScript:
1
2
3
4
5
6
7
8
| function SetScrollEvent(scrollToTop) { window.onload = function() { if (scrollToTop) window.scrollTo(0, 0); else window.scrollTo(0, document.body.scrollHeight); }; } |
Naar top scrollen werkt prima, maar de andere optie window.scrollTo(0, document.body.scrollHeight); helaas niet. Iemand een idee?
* Formulier inkorten of verdelen over meerdere pagina's etc. is geen optie.