Sélectionner une partie d'une zone texte [Résolu]

KaiHo 17 Messages postés mercredi 27 août 2003Date d'inscription 28 décembre 2010 Dernière intervention - 25 déc. 2010 à 23:58 - Dernière réponse : KaiHo 17 Messages postés mercredi 27 août 2003Date d'inscription 28 décembre 2010 Dernière intervention
- 28 déc. 2010 à 15:23
Bonjour,

Voilà, dans un formulaire, j'ai une zone texte avec une date créée dynamiquement, sous le format j/m/aaaa.
Mais je veux que lorsque la zone obtient le focus, seulement une partie de la zone soit sélectionnée, en l'occurrence le jour et le mois. Pour cela, j'ai créé une fonction du genre
function select_date()	
{
var text=document.forms["ThisForm"].elements["date_t"].value;
long_select=text.indexOf("/",3);
}
De cette façon, j'ai récupéré la longueur de la zone à sélectionner, dans l'espoir que cela me soit utile... Mais je ne trouve pas de méthode pour sélectionner seulement "long_select" caractère.

Une idée, ou je me fais des illusions et cela n'existe pas ?

Merci d'avance, et passez de bonnes fêtes !
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
PetoleTeam 3435 Messages postés lundi 26 décembre 2005Date d'inscription 14 janvier 2011 Dernière intervention - 28 déc. 2010 à 10:03
3
Merci
Bonjour,
il te faut regarder du côté de
FireFoX
- selectionStart = position début
- selectionEnd = position fin

IExplorer
- moveStart('character', position début)
- moveEnd ('character', valeur déplacement)


;O)

Merci PetoleTeam 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 68 internautes ce mois-ci

Commenter la réponse de PetoleTeam
Meilleure réponse
PetoleTeam 3435 Messages postés lundi 26 décembre 2005Date d'inscription 14 janvier 2011 Dernière intervention - 28 déc. 2010 à 14:48
3
Merci
la fonction de sélection pourrait ressembler à cela
//----------------------------------------
function setSelection( where_, deb_, fin_){
  //-- Recup l'Objet
  var Obj = document.getElementById( where_);
  if( Obj){
    Obj.focus();
    if( typeof Obj.selectionStart != "undefined"){
      //-- place selection de debut
      Obj.selectionStart = deb_;
      //-- place selection de fin
      Obj.selectionEnd   = fin_;
    }
    else{ // IE and consort
      var Chaine = Obj.createTextRange();
      //-- placement en début
      Chaine.collapse();
      //--  modif position de depart
      Chaine.moveStart('character', deb_);
      //--  modif position de fin
      Chaine.moveEnd  ('character', fin_- deb_);
      //-- selectionne
      Chaine.select();
    }
  }
}
dommage de se priver de IExplorer, à toi de l'adapter pour ton besoin comme tu l'as déjà commencé.

;O)

Merci PetoleTeam 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 68 internautes ce mois-ci

Commenter la réponse de PetoleTeam
KaiHo 17 Messages postés mercredi 27 août 2003Date d'inscription 28 décembre 2010 Dernière intervention - 28 déc. 2010 à 14:14
0
Merci
Génial...

Merci beaucoup...

Au passage, je créé tout ça sous Firefox, et tant mieux, parce que sous IE, ça me parait un peu compliqué...
Commenter la réponse de KaiHo
KaiHo 17 Messages postés mercredi 27 août 2003Date d'inscription 28 décembre 2010 Dernière intervention - 28 déc. 2010 à 14:27
0
Merci
Pour plus de précision

function select_date()	
{
var text=document.forms["ThisForm"].elements["date_t"].value;
long_select=text.indexOf("/",3);
document.forms["ThisForm"].elements["date_t"].selectionStart=0;
document.forms["ThisForm"].elements["date_t"].selectionEnd=long_select;
}	

Comme ça, si ma date est 1/2/2011, je sélectionne "1/2" et si ma date est 31/12/2010, je sélectionne "31/12".
Exactement ce que je voulais.
Commenter la réponse de KaiHo
KaiHo 17 Messages postés mercredi 27 août 2003Date d'inscription 28 décembre 2010 Dernière intervention - 28 déc. 2010 à 15:23
0
Merci
Ouah, super...

Après modif, ça marche nickel !

function select_date()	
{
var text=document.forms["ThisForm"].elements["date_t"].value;
long_select=text.indexOf("/",3);
var Nom = navigator.appName;
if (Nom == 'Microsoft Internet Explorer') 
{
var Chaine = document.forms["ThisForm"].elements["date_t"].createTextRange();
//-- placement en début
Chaine.collapse();
//--  modif position de depart
Chaine.moveStart('character', 0);
//--  modif position de fin
Chaine.moveEnd  ('character', long_select);
//-- selectionne
Chaine.select();
}
else
{
document.forms["ThisForm"].elements["date_t"].selectionStart=0;
document.forms["ThisForm"].elements["date_t"].selectionEnd=long_select;
}	
}



Un très grand merci !
Commenter la réponse de KaiHo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.