Remplacer un item dans un select multiple par un autre

Résolu
infkb Messages postés 46 Date d'inscription mercredi 10 août 2005 Statut Membre Dernière intervention 18 janvier 2011 - 14 sept. 2006 à 14:45
infkb Messages postés 46 Date d'inscription mercredi 10 août 2005 Statut Membre Dernière intervention 18 janvier 2011 - 21 sept. 2006 à 23:30
Bonjour,
Je cherche a faire une liste a choix multiple et que chaque fois que je selectionne un item j'ai sa taille et la possibilite de le changer.
J'ai rassembler des morceaux de codes et j'ai réaliser tout il me reste juste comment remplacer l'item selectionne dans la liste par celui dans le texte field c'est a dire celui qu'on veux le changer.
voici mon code :

<html>
<script>
function getValue(textb,listd, calql) {        // Affecte la valeur de la liste choisie dans la zone de texte
    textb.value=listd.item(listd.selectedIndex).text;
    // textb.value=listd.item(listd.selectedIndex).value; si on veut la valeur dans le code et pas dans la liste
    calql.style.visibility = 'hidden';
    textb.focus();
    textb.select();
}
function display_liste(calqt, calql) {    // Affiche le calque de la liste
    calql.style.visibility = 'visible';
    calql.style.top = calqt.style.top;
    //calql.style.top = calqt.style.top + 40;
    calql.style.left = calqt.style.left;
}
function replace_new(textb, listd){
replace(listd,textb);
alert("item remplace!");
}
function afficher(value) {
    alert(value.length)
}
function text_match(textb, listd) { // regarde si le texte existe en entier
    if (textb.value != "") {
        for (i=0; i<listd.length; i++) {
            if (textb.value.toLowerCase() == listd[i].text.toLowerCase()) {
                return i;
            }
        }
    }
    return -1;
}




function hide_liste(calqt, calql) {    // Affiche ou masque le calque de la liste suivant son dernier état
    if (calql.style.visibility == 'visible') {
        calql.style.visibility = 'hidden';
    }
    else {
        display_liste(calqt, calql);
    }
}
function liste_lostfocus(textb, listd, calql) { // Masque le calque si le texte et la liste n'ont pas le focus
    if ( (self.document.activeElement.name != textb) && (self.document.activeElement.name != listd) ) {
        calql.style.visibility = 'hidden';
    }
}
</script>








<form method="post" name="formulaire">


   
 


&nbsp&nbsp







    <select name="listed" id="formulaire" size="10" OnChange="javascript:afficher(formulaire.options[listed.selectedIndex].value);"onClick="getValue(document.getElementById('texteb'), document.getElementById('listed'), document.getElementById('liste1'));">
          <option VALUE="Item1">Item1-2</option >
          <option VALUE="Item2">Item2</option>
          <option VALUE="Item3">Item3</option>
    </select>


</form>



</html>
Merci de me repondre c'est tres urgent.

2 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
19 sept. 2006 à 14:35
bonjour,

   function replace_new(textb, listd){
   listd[listd.selectedIndex].text= textb.value; }
 
>>Merci de me repondre c'est tres urgent.




comme j'ai été un peu long, j'espère que tu n'as pas été viré ?
il faudrait nous rassurer !

<hr />
            cordialement   Bul    
mon Site
    
=Bul
M'écrire


<hr />
3
infkb Messages postés 46 Date d'inscription mercredi 10 août 2005 Statut Membre Dernière intervention 18 janvier 2011
21 sept. 2006 à 23:30
Merci infiniment et rassurez vous je n'est pas ete viré car j'ai trouve la solution et puisque j'ai ete tres occupe j'ai pas eu le temps de poster la reponse, Veuillez m'excuser.
Donc j'ai fait la fonction suivante:
function

replace_new(textb, listd)
{listd.item(listd.selectedIndex).text=textb.value;

listd.item(listd.selectedIndex).value=textb.value;

alert(

"item remplace!");
}
c'est exactement ce que vous m'avez proposer.

Merci encore une fois.
3
Rejoignez-nous