Je désactive le bouton comme celui-ci 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')
Quelques idées?
Edit: je découvre que $ ("# deliveryNext"). Button ('disable') ne permet que de changer le style du bouton, le clic fonctionne bien après, donc je dois désactiver le bouton de la même manière .. j’ai essayé. attr ('disabled', 'disabled') mais quand je teste ensuite .attr ('disabled') je deviens indéfini ...
Edit2: plus d'informations sur mon "vrai" problème sur Comment désactiver un bouton de lien dans jQuery Mobile?
essayez le sélecteur :is
$("#deliveryNext").is(":disabled")
Utilisez .prop à la place:
$('#deliveryNext').prop('disabled')
Essayer
$("#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>
J'ai eu le même problème et j'ai constaté que cela fonctionne:
if ($("#deliveryNext").attr('disabled')) {
// do sth if disabled
} else {
// do sth if enabled
}
Si cela vous donne undefined, vous pouvez également utiliser la condition if
.
Lorsque vous évaluez undefined
, il retournera false
.
http://jsfiddle.net/8gfYZ/11/ Voir ici.
$(function(){
$('#check').click(function(){
if( $('#myButton').prop('disabled') ) {
alert('disabled');
$('#myButton').prop('disabled',false);
}
else {
alert('enabled');
$('#myButton').prop('disabled',true);
}
});
});
Face au même problème lorsque vous essayez de vérifier si un bouton est désactivé. J'ai essayé diverses approches, telles que btn.disabled
, .is(':disabled')
, .attr('disabled')
, .prop('disabled')
. Mais personne ne travaille pour moi.
Certains, par exemple .disabled
ou .is(':disabled')
ont retourné undefined
et d'autres comme .attr('disabled')
ont renvoyé un résultat incorrect - false
lorsque le bouton a été désactivé.
Mais une seule technique fonctionne pour moi :.is('[disabled]')
(avec des crochets).
Donc, pour déterminer si un bouton est désactivé, essayez ceci:
$("#myButton").is('[disabled]');
Essayer
$("#deliveryNext").is('[disabled]');
Pour voir quelles options ont été définies sur un bouton jQuery UI , utilisez:
$("#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 encore été explicitement activé ou désactivé, l'appel ci-dessus renverra simplement l'objet bouton. Vous devez donc d'abord vérifier si l'objet options contient la propriété 'disabled'.
Donc, pour déterminer si un bouton est désactivé, vous pouvez le faire comme ceci:
$("#deliveryNext").button('option').disabled != undefined && $("#deliveryNext").button('option', 'disabled')
Ce qui a fonctionné pour moi a été ceci:
$("#testButton").hasClass('ui-state-disabled')
Mais j'aime beaucoup la réponse de Tomwadley.
Néanmoins, le code is (': disabled') ne fonctionne pas non plus pour moi, qui devrait être la meilleure version. Je ne sais pas pourquoi ça ne marche pas. :-(
Vous pouvez utiliser jQuery.is()
function avec :disabled
selector:
$("#savematerial").is(":disabled")
$ ('# StartButton: disabled') ..
Ensuite, vérifiez si ce n'est pas défini.