Atteindre une ancre au chargement de la page
Bonjour,
Alors voici mon problème je travaille sur une application en jsf 1.1 et sur une page je dispose notamment d'une selectOneMenu (une liste déroulante quoi) qui fait un submit de la page sur chaque événement onChange. Mais malheureusement cette liste est située en bas de page et lors du submit je me retrouve automatiquement en haut de page ce qui est plutôt pas très ergonomique... Je me suis donc tourné vers le javascript en utilisant un champ caché prenant la valeur de l'ancre ou je veut aller (car évidement j'ai plusieurs listes dans cette page qui chacunes vont à un endroit différent de la page) et une fonction sur l'événement onLoad de la page qui doit me positionner sur l'ancre voulue.
Sachant que ces listes sont placées dans une dataTable elles même dans une subview qui est dans un form... enfin bref tout cela est bien enterré au fin fond de la page ^^
La liste :
Code:
1 2 3 4 5 6
| <h:selectOneMenu id="somTeleTransmission" value="#{specTiers.teletransmission}" onchange="listeMutuelleSpecifique()" rendered="#{partenaireBackBean.currentSpecifiqueTiersCommune.forOrganismePrevadies}">
<f:converter converterId="TeletransmissionConverter" />
<t:selectItems value="#{partenaireBackBean.teletransmissionList}" var="teletrans"
itemLabel="#{teletrans.libelle}"
itemValue="#{teletrans}"/>
</h:selectOneMenu> |
Les champs cachés :
Code:
1 2
| <hinputHidden name="mutuelleSpecifique"/>
<h:inputHidden id="choixAncre" value="mutuelleSpecifique"/> |
Le code javaScript :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| function listeMutuelleSpecifique(){
document.getElementById("partenaireEditForm:frmEditGlobal:partenaireEditSpecifiqueForm:blocSpecifiqueCommuneMutuelle:choixAncre").value="mutuelleSpecifique";
document.forms[0].submit();
}
function atteindreAncre(){
var ancre=document.getElementById("partenaireEditForm:frmEditGlobal:partenaireEditSpecifiqueForm:blocSpecifiqueCommuneMutuelle:choixAncre").value;
if(ancre=="mutuelleSpecifique"){
window.location.hash="#mutuelleSpecifique";
}
} |
J'ai deux problèmes la dessus, premièrement je n'arrive pas à conserver la valeur du champ choixAncre lors du submit de la page... j'ai bien essayé d'utiliser un saveState en bindant ce champ sur une valeur de mon backBean jsf mais étant donné que je change sa valeur via javascript je doute de l'efficacité de la méthode... De plus je doit avoir une erreur de syntaxe pour atteindre l'ancre car après avoir essayé en forcant la valeur de l'ancre à ce que je veut (et l'avoir vérifié via des alert) je ne me retrouve quand même pas sur l'ancre au chargement....
Voila donc si quelqu'un à une idée d'ou viennent mes problèmes et surtout de comment les résoudre il gagnera ma reconnaissance (non pas de bière ^^).
Merci a tous d'avance!!