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 ?
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é.
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.
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;
}
}