Comment puis-je désactiver un bouton dans la boîte de dialogue de l'interface utilisateur jQuery . Je n'arrive pas à trouver cela dans aucune des documentations dans le lien ci-dessus.
J'ai 2 boutons sur la confirmation modale ("Confirmer" et "Annuler"). Dans certains cas, je souhaite désactiver le bouton "Confirmer".
.button()
plugin, donc ce ne sont plus nécessairement les solutions les meilleures / les plus propres.Réponses:
Si vous incluez le
.button()
plugin / widget que jQuery UI contient (si vous avez la bibliothèque complète et que vous êtes sur 1.8+, vous l'avez), vous pouvez l'utiliser pour désactiver le bouton et mettre à jour l'état visuellement, comme ceci:Vous pouvez l'essayer ici ... ou si vous utilisez une version plus ancienne ou n'utilisez pas le widget bouton, vous pouvez le désactiver comme ceci:
Si vous le souhaitez dans une boîte de dialogue spécifique, par exemple par ID, procédez comme suit:
Dans d'autres cas où cela
:contains()
pourrait donner de faux positifs, vous pouvez utiliser.filter()
comme ça, mais c'est exagéré ici puisque vous connaissez vos deux boutons. Si tel est le cas dans d'autres situations, cela ressemblerait à ceci:Cela empêcherait
:contains()
de faire correspondre une sous-chaîne de quelque chose d'autre.la source
$("#dialogID").nextAll(".ui-dialog-buttonpane").find("button:contains('Confirm')").attr("disabled", true).addClass("ui-state-disabled");
$(".ui-dialog-buttonpane button:contains('Confirm')").button("disable");
bien que si vous voulez désactiver le bouton d'une fonction que vous avez pour cela, vous devez widgetize ce dialogue et désactiver le bouton après cela; comme ça$(this).dialog("widget").find(".ui-dialog-buttonpane button:contains('Confirm')").button("disable");
On dirait que n'importe qui, même dans cette question liée , a proposé cette solution, similaire à la première partie de la réponse donnée par Nick Craver:
Ensuite, ailleurs, vous devriez pouvoir utiliser l' API pour le bouton de l'interface utilisateur jquery:
la source
{text:"ok",disabled:true,click: function(){}}
$("#dialog").dialog("widget").find(".button-ok-class").button("enable")
Vous pouvez également utiliser l' attribut
nondocumenté maintenantdisabled
:Pour activer après l'ouverture de la boîte de dialogue, utilisez:
JsFiddle: http://jsfiddle.net/xvt96e1p/4/
la source
attr: { 'data-value' : 'some value here' }
si vous souhaitez ajouter l'attributdata-value
au bouton.disabled
attribut doit être attribué lors de la création des boutons.Ce qui suit fonctionne à partir de la fonction de clic des boutons:
la source
Un bouton est identifié par la classe
ui-button
. Pour désactiver un bouton:Sauf si vous créez dynamiquement la boîte de dialogue (ce qui est possible), vous connaîtrez la position du bouton. Donc, pour désactiver le premier bouton:
La
ui-state-disabled
classe est ce qui donne à un bouton ce joli style grisé.la source
J'ai créé une fonction jQuery afin de rendre cette tâche un peu plus facile. Il y a probablement maintenant une meilleure solution ... de toute façon, voici mes 2 cents. :)
Ajoutez simplement ceci à votre fichier JS:
Désactiver le bouton 'Ok' dans le dialogue avec la classe 'dialog':
Activer tous les boutons:
Activez le bouton 'Fermer' et changez la couleur:
Texte sur tous les boutons en rouge:
J'espère que cela t'aides :)
la source
la source
Vous pouvez écraser le tableau de boutons et ne laisser que ceux dont vous avez besoin.
la source
ce code désactive le bouton avec 'YOUR_BUTTON_LABEL'. vous pouvez remplacer le nom dans contains (). désactiver
remplacez "YOUR_BUTTON_LABEL" par le libellé de votre bouton. autoriser
la source
Vous pouvez faire ceci pour désactiver le premier bouton par exemple:
la source
La façon dont je le fais est
Cancel: function(e) { $(e.target).attr( "disabled","disabled" ); }
C'est le moyen le plus court et le plus simple que j'ai trouvé.
la source
Si vous utilisez KO, alors c'est encore plus propre. Imaginez que vous avez ce qui suit:
La magie vient de la source de l'interface utilisateur jQuery :
Vous pouvez appeler N'IMPORTE QUELLE fonction d'instance jQuery en la passant par l'objet bouton.
Par exemple, si vous souhaitez utiliser HTML:
Ou, si vous souhaitez ajouter une classe au bouton (vous pouvez le faire de plusieurs manières):
Peut-être que vous êtes fou et que vous souhaitez supprimer le bouton du dom lorsqu'il est survolé:
Je suis vraiment surpris que personne ne semble avoir mentionné cela dans le nombre incalculable de fils comme celui-ci ...
la source
Cela a fonctionné pour moi -
la source
Vous pouvez désactiver un bouton lorsque vous créez la boîte de dialogue:
Ou vous pouvez le désactiver à tout moment après la création de la boîte de dialogue:
la source