Décaler le curseur dans un <input />

Décaler le curseur dans un <input /> - HTML/CSS - Programmation

Marsh Posté le 01-08-2006 à 13:50:01    

Salut,
 
Voila tout est dans le titre, quand on entre du texte dans un objet HTML <input /> le curseur est toujours a droite du dernier caractère tappé, c'est logique ! Je voudrais faire une fonction en javascript qui ramène ce curseur de n position en arrière (décalage vers la gauche).

Reply

Marsh Posté le 01-08-2006 à 13:50:01   

Reply

Marsh Posté le 01-08-2006 à 14:06:54    

je me demande bien quel peut être l'interêt... mais bon!!!
Tiens en gros ça doit faire ce que tu veux

Code :
  1. function pouet(id, nbChar){
  2.     var input = document.getElementById(id);
  3.     input.focus();
  4.     if ( input.selectionStart != 'undefined'){
  5.       /*** Gecko ***/
  6.       input.selectionStart = input.value.length - nbChar;
  7.       input.selectionEnd = input.value.length - nbChar;
  8.     } else if(typeof document.selection != 'undefined') {
  9.       /*** IE ***/
  10.       var range = document.selection.createRange();
  11.       range.move('character', - nbChar);
  12.     } else {
  13.       alert('not supported');
  14.       return false;
  15.     }
  16.     return true;
  17. }


T'as juste à l'appeler avec l'id de l'input visé et le nombre de caractères.


Message édité par anapajari le 01-08-2006 à 14:07:28
Reply

Marsh Posté le 01-08-2006 à 14:19:26    

ok merci beaucoup !
Entre temps j'avais trouver la méthode
setSelectionRange(x, y) en mettant la meme valeur pour x et y, seulement ca commence a gauche, or on ne sait pas combien y'a eu de caractères tappés.
setSelectionRange(2, 2) permet de mettre le curseur au 2e rang apres le tout début du texte tappé, alors que moi je veux le mettre à n rang mais a partir de la toute fin du texte tappé !
 
EDIT: finalement j'ai pu modifier ce que j'avais fait grace a ce que tu m'a donné, ce qui me manquait c'était length.
 
Mon code:
 

Code :
  1. var toto = document.forms["formulaire"].elements["texte1"].value.length;
  2. document.forms["formulaire"].elements["texte1"].setSelectionRange(toto-2, toto-2);
  3. document.forms["formulaire"].elements["texte1"].focus();


 
Ca marche. T'en penses quoi ?
 
(PS c'est la premiere fois de ma vie que je fais du javascript  :D )

Message cité 1 fois
Message édité par cimourdain le 01-08-2006 à 14:29:38
Reply

Marsh Posté le 01-08-2006 à 14:53:13    

j'ai un autre probleme en fait maintenant.
pour faire une concaténation j'utilise + par exemple ...value+="chaine". Le probleme c'est qu'avec cette instruction, meme si le curseur se trouve au milieu du texte, il va se mettre a la fin du texte et ajouter chaine a la fin du texte. :( Comment faire pour que la concaténation se fasse la ou est le curseur ? En fait il vaudrait mieux parler d'insertion que de concaténation je pense mais bon...

Reply

Marsh Posté le 01-08-2006 à 15:06:31    

cimourdain a écrit :

Ca marche. T'en penses quoi ?


Essaye sous IE pour rire [:spamafote]
 
Et pour répondre à ta deuxième question, le plus simple:
- tu coupes ta chaine en deux substrings la ou est ton curseur
- tu les concatènes avec ce que tu veux rajouter au milieu

Reply

Marsh Posté le 01-08-2006 à 18:03:14    

ouais je sais ca marche pas sous IE mais bon j'ai bien envie de me foutre de IE. Après tout les gens on qu'a prendre leur responsabilité et passer sous firefox ! depuis le temps...

Reply

Marsh Posté le 01-08-2006 à 18:48:48    

cimourdain a écrit :

ouais je sais ca marche pas sous IE mais bon j'ai bien envie de me foutre de IE. Après tout les gens on qu'a prendre leur responsabilité et passer sous firefox ! depuis le temps...


 [:atsuko] quel bel argument "a la con"... c'est le même qui a fait que les sites web furent "IE only"  
En plus t'avais juste à prendre le code que je t'ai donné plus haut pour que ça marche partout [:spamafote]
Et si tu tenais vraiment à ton setSelectionRange, tu remplaçais:

Code :
  1. input.selectionStart = input.value.length - nbChar;
  2. input.selectionEnd = input.value.length - nbChar;


par  

Code :
  1. input.setSelectionRange(input.length -nbChar, input.length -nbchar);


Message édité par anapajari le 01-08-2006 à 18:49:10
Reply

Marsh Posté le 01-08-2006 à 21:01:49    

ce n'est pas un argument a la con parce que derriere il y a l'argument "firefox est respectueux des standards alors que IE non".

Reply

Marsh Posté le 01-08-2006 à 21:17:43    

et donc pour montrer que tu es respectueux des standards toi aussi tu decides de penaliser tous ceux qui ne savent meme pas que ces standards existent ? [:petrus dei]

Reply

Marsh Posté le 02-08-2006 à 11:01:17    

non j'insite les gens a passer sous ff, ce qui est une mesure de bon sens !!

Reply

Marsh Posté le 02-08-2006 à 11:01:17   

Reply

Marsh Posté le 02-08-2006 à 11:11:32    

cimourdain a écrit :

non j'insite les gens a passer sous ff, ce qui est une mesure de bon sens !!


n'importe quoi  :pfff:  ... c'est dépitant!!!
Comment toi, un "débutant"(*), peux tu te permettre "d'imposer" quoi que se soit?
Quid des gens qui n'ont pas le choix ( exemple au bureau où ils ne peuvent pas installer ce qu'ils veulent), Des gens qui utilisent d'autres navigateurs ( opera, maxthon) et j'en passe
C'est bien beau de lire les recommandations, de se la péter xhtml-sémantique-overlord, mais le but derrière tout ça c'est quand même de rendre les pages accèssibles à tous. Et toi tu te sers de ça pour avoir la démarche inverse.
 
 
 
(*) c'est pas moi qui le dit mais toi:

Citation :

c'est la premiere fois de ma vie que je fais du javascript


Reply

Marsh Posté le 03-08-2006 à 14:08:13    

anapajari a écrit :

n'importe quoi  :pfff:  ... c'est dépitant!!!
Comment toi, un "débutant"(*), peux tu te permettre "d'imposer" quoi que se soit?
Quid des gens qui n'ont pas le choix ( exemple au bureau où ils ne peuvent pas installer ce qu'ils veulent), Des gens qui utilisent d'autres navigateurs ( opera, maxthon) et j'en passe
C'est bien beau de lire les recommandations, de se la péter xhtml-sémantique-overlord, mais le but derrière tout ça c'est quand même de rendre les pages accèssibles à tous. Et toi tu te sers de ça pour avoir la démarche inverse.
 
 
(*) c'est pas moi qui le dit mais toi:

Citation :

c'est la premiere fois de ma vie que je fais du javascript



 
 
le fait que je sois débutant en création de site web et le fait que passer a ff soit une mesure de bon sens n'a aucun rapport.
ensuite pour ce qui est des gens qui sont au bureau etc... comme tu dis, ca prouve juste que les gens qui ont le pouvoir de changer ca devrait le faire et passer a ff.
Je pense que peu de gens ne seront pas d'accord avec moi si je dis que continuer à utiliser IE est absurde.

Message cité 2 fois
Message édité par cimourdain le 03-08-2006 à 14:09:40
Reply

Marsh Posté le 03-08-2006 à 15:14:14    

cimourdain a écrit :

Je pense que peu de gens ne seront pas d'accord avec moi si je dis que continuer à utiliser IE est absurde.


 
la partie en gras est un pleonasme :D
donc evidemment on sera tous d accord
mais tu perds de vue le but du net merde :/
 
c est a dire un max d infos disponibles POUR TOUS
c est pas en massacrant tes pages pour els utilisateurs d ie que tu vas te faire comprendre  
bien au contraire
avant de respecter a la lettre les standards il faut respecter en premier les regles d accessibilité
c est ce qui prime avant tout et c est un point indiscutable  [:aloy]  
il faudrait voir a ne pas tout faire a l envers :/
 
d ailleurs la chance est avec nous sur le site du w3c accessibility se trouve en tout premier alors que xhtml frole le bas de page
pour te rassurer tu n as qu a penser comme cela:
si lynx est le navigateur des mal voyants ie est celui des mal comprenants et tu respectes tous les handicapés du web :D
 
apres rien ne t empeche de mettre un lien vers firefox voire meme de creer une page pour dire a quel point firefox c est bien toussa

Reply

Marsh Posté le 03-08-2006 à 18:59:46    

+1 Mirror.
 
Mais bonn comme d'hab, on se répéte. Les pisseux qui se la jour FF only, me demande, pourquoi, ils viennent poser des questions, si ils sont déjà aussi campé sur leurs positions.
 
cimourdain>>Ici personne, n'utilise IE pour ça consommation personnel.
Mais tous on l'utilise, pour etre sur que tout marche nickel dessus.
Car n'oublie pas, IE a encore 80% du marché...
Donc, bon..ça laisse plus grand monde pour voir ton site :D

Reply

Marsh Posté le 03-08-2006 à 20:32:39    

ben les gens qui iront voir le site seront des gens éclairés et qui donc utilisent Firefox.
Sinon le fait que je veuille pas supporter IE c'est pas une attitude de pisseux FF only xtof_83, c'est juste par simplicité parce que ca évite d'écrire les fonctions en double voire en triple. Et je continue a dire que c'est absurde de vouloir utiliser IE, le vrai remède c'est de faire passer tout le monde sous Firefox, comme tu dis, 80% sous IE, c'est plutot ca qui devrait vous mettre hors de vous et non qqn qui ne souhaite pas se faire chier a rendre compatible sont site avec un navigateur non respectueux des standards. Tan pis pour IE, tant pis pour ses utilisateurs, apres tout personne n'a jamais forcé personne a utiliser IE...

Reply

Marsh Posté le 03-08-2006 à 20:41:20    

cimourdain a écrit :

apres tout personne n'a jamais forcé personne a utiliser IE...


 
microsoft ? [:petrus dei]
 
(t1 vivement la fin des vacances c est tous les jours vendredi :sweat:  )

Reply

Marsh Posté le 04-08-2006 à 09:27:35    

cimourdain a écrit :

ben les gens qui iront voir le site seront des gens éclairés et qui donc utilisent Firefox.
Sinon le fait que je veuille pas supporter IE c'est pas une attitude de pisseux FF only xtof_83, c'est juste par simplicité parce que ca évite d'écrire les fonctions en double voire en triple. Et je continue a dire que c'est absurde de vouloir utiliser IE, le vrai remède c'est de faire passer tout le monde sous Firefox, comme tu dis, 80% sous IE, c'est plutot ca qui devrait vous mettre hors de vous et non qqn qui ne souhaite pas se faire chier a rendre compatible sont site avec un navigateur non respectueux des standards. Tan pis pour IE, tant pis pour ses utilisateurs, apres tout personne n'a jamais forcé personne a utiliser IE...


Ouais mais bon la dans ton problème selectionStart c'est du XUL ( il me semble, enfin sur à 90%), donc j'aimerais BEAUCOUP que tu m'expliques où est le coté "standard" de ton truc!
Autant on peut eventuellement critiquer IE pour son "non"-support des CSS, autant sur le js les différences avec gecko sont infimes ( gestion des evenements, pas de support des fonctions array javascript1.6).
Mais je vais te dire ce qui est vraiment énervant. Si a la limite tu ne faisais pas fonctionner pour IE parce que c'est trop compliqué pourquoi pas. Mais là, je te donne une solution toute faite, qui fonctionne sur les deux navigateurs, qui fait 5 lignes et toi tu l'envoies bouler sous le pretexte que "ça fonctionne sur IE, ça sert à rien".
ça donne pas envie de t'aider par la suite (ce qui je préssens ne devrait pas tarder à arriver,) [:spamafote]
 
Sinon j'ai répondu juste parce qu'on était vendredi \o/

Reply

Marsh Posté le 04-08-2006 à 10:49:18    

Ouais vive le vendredi :p...Celui là il en tiens une bonne ;)

Reply

Marsh Posté le 05-08-2006 à 19:07:20    

anapajari a écrit :

Ouais mais bon la dans ton problème selectionStart c'est du XUL ( il me semble, enfin sur à 90%), donc j'aimerais BEAUCOUP que tu m'expliques où est le coté "standard" de ton truc!
Autant on peut eventuellement critiquer IE pour son "non"-support des CSS, autant sur le js les différences avec gecko sont infimes ( gestion des evenements, pas de support des fonctions array javascript1.6).
Mais je vais te dire ce qui est vraiment énervant. Si a la limite tu ne faisais pas fonctionner pour IE parce que c'est trop compliqué pourquoi pas. Mais là, je te donne une solution toute faite, qui fonctionne sur les deux navigateurs, qui fait 5 lignes et toi tu l'envoies bouler sous le pretexte que "ça fonctionne sur IE, ça sert à rien".
ça donne pas envie de t'aider par la suite (ce qui je préssens ne devrait pas tarder à arriver,) [:spamafote]
 
Sinon j'ai répondu juste parce qu'on était vendredi \o/


 
apprend a lire. J'ai dis que je supportais pas IE car c'était trop compliqué d'écrire les fonctions en double voire en triple.

Reply

Marsh Posté le 05-08-2006 à 19:42:23    

cimourdain a écrit :


Je pense que peu de gens ne seront pas d'accord avec moi si je dis que continuer à utiliser IE est absurde.


Moi je ne suis pas d'accord.
Il est rapide, il fonctionne très bien pour le surf, il est intégré à l'OS qui couvre 95% des ordis de la planète, il fonctionne mieux sur des petites configs que Fifox.
Qui plus est, beaucoup de gens, dont moi utilise Firefox pour les onglets (et pour les extensions webdev dans mon cas) et quand IE7 arrivera, beaucoup repasseront sur IE (dont surement moi d'ailleurs).
Si on fait un super truc W3C roxxxor pour faire genre on fait plaisir à 2 aveugles et qu'on limite l'accessibilité de son site à tous les débutants de la planète qui ne savent même pas qu'il y a une alternative à IE ou qui ne savent pas installer un nouveau programme ou ne le font pas par crainte, c'est du foutage de gueule, autant faire du web comme en 95 Netscape only.

Message cité 3 fois
Message édité par The-Shadow le 05-08-2006 à 19:43:29
Reply

Marsh Posté le 05-08-2006 à 23:16:43    

The-Shadow a écrit :

Moi je ne suis pas d'accord.
Il est rapide, il fonctionne très bien pour le surf, il est intégré à l'OS qui couvre 95% des ordis de la planète, il fonctionne mieux sur des petites configs que Fifox.
Qui plus est, beaucoup de gens, dont moi utilise Firefox pour les onglets (et pour les extensions webdev dans mon cas) et quand IE7 arrivera, beaucoup repasseront sur IE (dont surement moi d'ailleurs).
Si on fait un super truc W3C roxxxor pour faire genre on fait plaisir à 2 aveugles et qu'on limite l'accessibilité de son site à tous les débutants de la planète qui ne savent même pas qu'il y a une alternative à IE ou qui ne savent pas installer un nouveau programme ou ne le font pas par crainte, c'est du foutage de gueule, autant faire du web comme en 95 Netscape only.


Même si IE7 sortait, il y a un point pour lequel je ne repasserai pas à IE ni à n'importe quel autre navigateur.
 
Firefox est simple d'utilisation, possède une communauté extrêmement importante, est mis à jour continuellement.
Et le fin du fin, possède toute une panoplie d'extensions qui permettent de construire sont propre firefox.
De plus j'ai firefox portable, qui me permet de l'avoir n'importe où avec toute ma config d'extensions...
Mais je suis totalement d'accord en tout cas sur le fait qu'il est un peu lent comparé à IE.

Reply

Marsh Posté le 06-08-2006 à 01:33:04    

The-Shadow a écrit :


Si on fait un super truc W3C roxxxor pour faire genre on fait plaisir à 2 aveugles


 
 :pfff:

Reply

Marsh Posté le 06-08-2006 à 13:39:55    

cimourdain a écrit :

non j'insite les gens a passer sous ff, ce qui est une mesure de bon sens !!


Et tu incites aussi les gens à passer sous Opera, Safari ou Konqueror ou bien c'est juste que t'as pas envie de t'emmerder? [:dawa]

The-Shadow a écrit :

il fonctionne mieux sur des petites configs que Fifox.


Mais moins bien qu'Opera [:dawa]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 06-08-2006 à 14:32:18    

http://membres.lycos.fr/metaltrade//stfu.png

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed