66 votes

jQuery Mobile : comment vérifier si le bouton est désactivé ?

Je désactive le bouton comme ceci sur ma page web jQuery Mobile :

$(document).ready(function() {
    $("#deliveryNext").button();
    $("#deliveryNext").button('disable');
});

et je peux l'activer avec

$("#deliveryNext").button('enable');

Mais comment puis-je vérifier si le bouton est désactivé ou activé ?

Cette commande donne "undefined" :

$("#deliveryNext").attr('disabled')

Des idées ?

Edit : j'ai découvert que $("#deliveryNext").button('disable') semble seulement changer le style du bouton, le clic fonctionne bien après donc j'ai besoin de désactiver le bouton d'une manière ou d'une autre... j'ai essayé .attr('disabled', 'disabled') mais quand je teste ensuite .attr('disabled') j'obtiens undefined...

Edit2 : plus d'informations sur mon "vrai" problème à l'adresse suivante Comment désactiver un bouton de lien dans jQuery Mobile ?

133voto

Vivek Points 4704

Essayez :is sélecteur

$("#deliveryNext").is(":disabled")

3 votes

Utilisez plutôt ".prop('disabled')".

1 votes

@tponthieux Pourriez-vous développer ?

30voto

kinakuta Points 6960

Utilisez .prop à la place :

$('#deliveryNext').prop('disabled')

0 votes

Cela me donne le même résultat, si j'écris ceci dans firebug : console.log($('#deliveryNext').prop('disabled')) je reçois "undefined".

0 votes

Cela fonctionne pour moi dans FireFox.

3 votes

Si vous utilisez bootstrap, vous aurez peut-être besoin de hasClass("disabled") pour la balise A également.

9voto

lancscoder Points 3385

Essayez

$("#deliveryNext").is(":disabled")

Le code suivant fonctionne pour moi :

<script type="text/javascript">
    $(document).ready(function () {
        $("#testButton").button();
        $("#testButton").button('disable');
        alert($('#testButton').is(':disabled'));
    });
</script>
<p>
    <button id="testButton">Testing</button>
</p>

0 votes

Donne false mais le bouton est désactivé avec $('#deliveryNext').button('disable')

0 votes

L'élément a-t-il la balise "disabled" lorsque vous le désactivez ? (Vous pouvez vérifier avec firebug)

5voto

jackkorbin Points 366

http://jsfiddle.net/8gfYZ/11/ Vérifiez ici

$(function(){

    $('#check').click(function(){
        if( $('#myButton').prop('disabled') ) { 
            alert('disabled'); 
            $('#myButton').prop('disabled',false);
        } 
        else {
            alert('enabled');
            $('#myButton').prop('disabled',true);
        }
    });
});

2voto

Tom Wadley Points 17271

Pour voir quelles options ont été définies sur un jQuery UI utilisation des boutons :

$("#deliveryNext").button('option')

Pour vérifier s'il est désactivé, vous pouvez utiliser :

$("#deliveryNext").button('option', 'disabled')

Malheureusement, si le bouton n'a pas été explicitement activé ou désactivé auparavant, l'appel ci-dessus renverra simplement l'objet bouton lui-même. Vous devrez donc d'abord vérifier si l'objet options contient la propriété 'disabled'.

Ainsi, pour déterminer si un bouton est désactivé, vous pouvez procéder comme suit :

$("#deliveryNext").button('option').disabled != undefined && $("#deliveryNext").button('option', 'disabled')

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X