Fixer le bug IE pour utiliser jQuery.change() sur des input de type radio

Sur les <input> de type radio ( et checkbox ?) , l’utilisation de la fonction .change() de jQuery est delicate : Apres avoir cliquer sur le radio, il faut cliquer ailleurs dans la page pour activer la fonction .change()

En gros, l’event .change est « fired » uniquement lorsqu’on quitte l’element (blur). Ca nous fait une belle phrase ca !

Pour remedier a ca, un petit bout de code suffit :

$(function () {
    if ($.browser.msie) {
        $('input:radio').click(function () {
            this.blur();
            this.focus();
        });
    }
});

En gros, lors du clic sur un bouton radio, ca code enleve le focus a l’element (et donc .change() est appelé), puis lui redonne le focus immediatement.

L’info a été trouvée ici : http://norman.walsh.name/2009/03/24/jQueryIE#comment0012

J’espere que ca vous sauvera !

12 mar 2010 catégorie : | Mots-clés : ,

Poster un commentaire