Aller au contenu

onChange sous IE

Featured Replies

Posté(e)

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)
  • 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 :byebye:

Posté(e)

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)
  • 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 :byebye:

bonne soiree

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.