Désactiver une option de select avec jQuery

Posté le mercredi 8 avril 2009 par Matt

Que ferions nous si nous n’avions pas Internet Explorer pour nous aider à nous torturer les méninges ? On risquerait de s’ennuyer !

Il semblerait que dans la version 7 de ce navigateur cher aux développeurs masochistes, on n’aie toujours pas la possibilité pourtant bien utile de désactiver une des options d’un ’select’.

Heureusement, javascript (boosté par jQuery) permet de régler pas mal des lacunes du navigateur que l’on adore détester.

Voici un petit script trouvé sur internet qui peut vous dépanner si vous êtes confronté à ce problème :

$(document).ready(function(){
  // Disabled options fix for Internet Explorer
  $('select').each(function(){
    this.rejectDisabled = function(){
      if (this.options[this.selectedIndex].disabled){
        if (this.lastSelectedIndex) {
          this.selectedIndex = this.lastSelectedIndex;
        } else {
          var first_enabled = $(this).children('option:not(:disabled)').get(0);
          this.selectedIndex = first_enabled ? first_enabled.index : 0;
        }
      } else {
        this.lastSelectedIndex = this.selectedIndex;
      }
    };
    this.rejectDisabled();
    this.lastSelectedIndex = this.selectedIndex;
    $(this).children('option[disabled]').each(function(){
      $(this).css('color', '#CCC');
    });
    $(this).change(function() {
      this.rejectDisabled();
    });
  });
});

Merci jQuery :)

Laisser un Commentaire

Haut de page
Clicky Web Analytics