Posté(e) le 27 juin 200817 a Bonjour Sur une page de consultation de log, j'affiche le contenu du fichier sur plusieurs pages et pour rendre le tout plus convivial, jme suis rajoute une barre avec premiere page, page precedante, page suivante derniere page, ... et au milieu, un champ text avec un onChange pour reload la page des que l'user ayant rentre son numero de page a appuye sur sa touche 'entre'. Sauf que... Suite a des tests sous IE (et je suis reste longtemps a croire que ca fonctionnait pas...), j'ai remarque que l'instruction du onChange ne s'execute qu'une fois que l'utilisateur a clique a l'exterieur du champ (n'importe ou, sur la page, mais ailleurs...) ce qui n'est pas tres evident... des idees pour pallier a ce manque flagrant d'ergonomie ? :) merci !
Posté(e) le 27 juin 200817 a Auteur parceque pour des log de plusieurs dizaines de milliers de lignes, a coup de vingt lignes par page, c'est pas la meilleure solution
Posté(e) le 27 juin 200817 a Ok en effet. Sinon il te reste la possibilité de mettre un petit bouton 'valider', 'ok', (...) à côté. C'est par exemple la solution qui a été choisi par IPB (et d'autres) pour la navigation dans les pages des topics.
Posté(e) le 27 juin 200817 a Auteur oui, mais c'est pas beau ! :) bon, maintenant, ma solution function keypress(evt, elt, maxpage, beg, end) { var k = evt.keyCode ? evt.keyCode : evt.which; var ret = true; var chr = String.fromCharCode(k & 0xFF); switch (chr) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case '\b': break; case '\r': case '\n': var page = elt.value - 1; if (page <= maxpage) { window.location.href = beg+page+end; } break; default: ret = false; break; } if (!ret) { if (evt.preventDefault){ evt.preventDefault();} else{ evt.returnValue = false;} } return ret; } ca a l'air de marchotter et maintenant, en dessous, j'ai: <input type=text onkeypress='kypress(event, this, <?=$lastpage?>, "debut de l'url", "fin de l'url")' /> voilou, et merci quand meme bonne soiree
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.