Désactiver une option de select avec jQuery

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

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Haut de page