Position curseur dans textbox [Résolu]

Signaler
Messages postés
150
Date d'inscription
dimanche 14 mars 2004
Statut
Membre
Dernière intervention
21 décembre 2007
-
Messages postés
150
Date d'inscription
dimanche 14 mars 2004
Statut
Membre
Dernière intervention
21 décembre 2007
-
Bonjour,

Voila je désespere un peu et il commence a ce faire tard...
J'aimerais simplement récupérer la position du curseur dans le textbox en debut de fonction, ensuite faire un traitement pour changer le contenue complet de la textbox et apres le remettre a ca position de début.

en gros j'aimerais :
au début  dans el textbox : xxxxxxxxxxxx
pression touche event keydown :  xxxxxx2xxxxxx   // insertion donc un x en plus
a la fin : xxxxxx2xxxxx   // enlever un x pour toujours avoir le meme nombre de caractere dans la textbox.

Voila en gros c'est de la completion dans une chaine.
J'ai trouvé comment faire pour avoir toujours le meme nombre de caracteres avec un substring
mais a chaque fois il me met le curseur a la fin du text et je veux que le curseur reste à la position ou il était....

voici ce ke jai deja :
function verifbin()
{
var cbin=window.Form1.elements['CodeBin'];
var poscur=document.selection.createRange().duplicate();
cbin.value=cbin.value.substring(0,19);
if (cbin.value.length<19)
{
var taille=cbin.value.length;
for (var i=0;i<19-taille;i++)
{
cbin.value+='x';
}
}

poscur.text="";
}

Jespere ke j'ai été assez clair....et que quelqu'un pourra me répondre parce que franchement le javascript c'est pas ma tasse dethé!!!mais alors vraiment pas...

Merci d'avance!!!

5 réponses

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
13
B

onjour...

J'espère que cette fois ci c'est complet..
CURSEUR dans TEXTAREA


;0)
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
13
B

onjour...

Si cela peut t'aider, mais ne fonctionne que sur FireFox à ma connaissance

//-------------------------------
function PlaceCurseur( div_, pos_){
  var


Obj= document.getElementById( div_);
  if( Obj){
    Obj.focus();
    Obj.setSelectionRange( pos_, pos_);
  }
}



;0)
Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
7
PetoleTeam -> Cette méthode fonctionne sur tous les navigateurs sauf IE à ma connaissance. Pour IE c'est un peu plus complique, mais je te bidouille quelque chose qui marche pour IE. Aussi ton script ne fait que placer le curseur pour savoir la position où il se trouve c'est la propriété selectionStart. Voici ma version pour trouver l'index dans un textarea.

function getPosition(div_)
{
var Obj= document.getElementById(div_);
if (typeof Obj.selectionStart != "undefined")
{
return Obj.selectionStart;
}
else
{
Obj.focus();
Range = document.selection.createRange();
RangeText = Range.text;
Range.text = String.fromCharCode(255);
ObjVal = Obj.innerHTML;
FindPos = ObjVal.indexOf(String.fromCharCode(255));
Obj.value = ObjVal.replace(String.fromCharCode(255),RangeText);
return FindPos;
}
}
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
13
B


onjour...la bidouille comme dit


Arto_8000




...en réponse à...





"...je veux que le curseur reste à la position ou il était...."







je vous livre
//--------------------------------
function PlaceCurseur( div_, pos_){
  var Obj_T;
  var Obj_D = document.getElementById( div_);
  if( Obj_D){
    Obj_D.focus();
    if( typeof Obj_D.selectionStart != "undefined"){ //


tous les navigateurs sauf IE



      Obj_D.setSelectionRange( pos_, pos_);
    }
    else{ // donc il reste IE
      Obj_T = Obj_D.createTextRange();
      with( Obj_T){
        findText(text.charAt(pos_));
        select();
      }
    } 
  }
}
Nota : c'est pas top sous IE le caract en pos_ est selected... mais c'est un début...

Bon c'est l'heure des vacances alors A++++



;0)
Messages postés
150
Date d'inscription
dimanche 14 mars 2004
Statut
Membre
Dernière intervention
21 décembre 2007
2
Désolé pour le retard, je me suis perdu dans les abime de l'ASP.NET. En tout cas, Merci à tous!!! Pour ceux qu'on le meme prob que moi allez voir la source qui résume toutes les réponses ici.

Encore merci a tous!

See you later!!