Insertion d'un élément dans une liste type select triée

Contenu du snippet

C'est un petit code javascript qui va insérer un élément dans une liste d'un formulaire, en la plaçant directement au bon endroit par ordre alphabétique. Un paramètre optionel permet de sauter un certain nombre de lignes au début.

Source / Exemple :


function insertListe(lst,txt,val,skipline)
{
  try
  {
    insertpos=-1;
    o=new Option(txt,val);
    if(lst.options.length>0)
    {
      decale=false;
      if(skipline==null || skipline<=0) skipline=0;
      for(i=skipline;i<lst.options.length;i++)
      {
        //lst.selectedIndex=i;
        if(!decale)
        {
          if(txt<lst.options[i].text)
          {
            //Insertion
            b=new Option(lst.options[i].text,lst.options[i].value);
            lst.options[i]=o;
            o=b;
            decale=true;
            insertpos=i;
          }
          else
          {
            //On continue
          }
        }
        else
        {
          //Decalage
          b=new Option(lst.options[i].text,lst.options[i].value);
          lst.options[i]=o;
          o=b;
        }
      }
      lst.options[lst.options.length]=o;
    }
    else
    {
      insertpos=0;
      lst.options[lst.options.length]=o;
    }
    lst.selectedIndex=insertpos;
  }
  catch(o)
  {
    alert("An exception occurred in the script. Error name: " + e.name + ". Error message: " + e.message)
    return;
  }
}

Conclusion :


Pour que ce code marche au mieux, il faut que la liste de destination soit déjà triée d'origine, ou bien vide.

A voir également

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.