Désactiver les Boutons en jQuery Mobile
C'est pour jQuery Mobile. Pas tous réguliers jQuery réponses de travail.
Je ne peux pas obtenir mes boutons pour désactiver dans jQuery Mobile.
jQuery Mobile est dit d'utiliser
$('input').button('disable');
Mais j'obtiens un message d'erreur dans Firebug:
uncaught exception: ne peut pas appeler des méthodes sur le bouton avant de l'initialisation; tenté d'appeler la méthode "désactiver".
C'est dans le document de prêt de la section de ma page donc je ne sais pas comment il n'est pas encore initialisé.
J'ai essayé d'appeler le bouton directement par son id, mais qui ne fonctionne pas.
J'ai essayé:
$('button').attr("disabled", "disabled");
Ne fonctionne pas.
J'ai aussi un commutateur de commande qui va permettre à un bouton de fonction sur quelle en est la valeur. J'ai que la partie à l'endroit où son acheminement à droite "l'affaire" états, mais les boutons activer/désactiver chose en jQuery mobile ne fonctionne pas.
code: http://pastebin.com/HGSbpAHQ
- HTML Merci de nous ressemble le sélecteur est faux.
- Sélecteurs de regarder OK en général, mais nous devons savoir que vous avez
<input type='button'>
ou<button>...</button>
- Nous avons besoin de voir votre code HTML comme Alexandre a dit
<div id="DT1S"> <input type="button" name="DT1S" value="Start Job" /> </div> <div id="STS"> <input type="button" name="STS" value="Start Surveillance" /> </div> <div id="STE"> <input type="button" name="STE" value="End Surveillance" /> </div> <div id="DT2E"> <input type="button" name="DT2E" value="End Job" /> </div>
- Le doc a dit: "Les méthodes suivantes s'appliquent uniquement à la forme des boutons. Basé sur un lien de boutons n'ont pas toutes les méthodes associées"
Vous devez vous connecter pour publier un commentaire.
Mise à JOUR:
Depuis que cette question devient encore beaucoup de succès, je suis aussi d'ajouter de l'actuel jQM Docs sur la façon de désactiver le bouton:
Mise À Jour Des Exemples:
Original Post Ci-Dessous:
Live Exemple: http://jsfiddle.net/XRjh2/2/
Mise à JOUR:
À l'aide de @naugtur exemple ci-dessous: http://jsfiddle.net/XRjh2/16/
Mise à JOUR #2:
Bouton de lien exemple:
JS
HTML
REMARQUE: - http://jquerymobile.com/demos/1.0rc2/docs/buttons/buttons-types.html
cela signifie que vous essayez d'appeler un élément qui n'est pas traitée comme un bouton, parce que personne ne
.button
méthode a été appelée sur elle. Par conséquent, votre problème DOIT être le sélecteur.Vous sélectionnez toutes les entrées
$('input')
, de sorte qu'il essaie d'appeler la méthodedisable
bouton de widget de l'espace de noms non seulement sur les boutons, mais sur des saisies de texte trop.$('button').attr("disabled", "disabled");
ne fonctionnera pas avec jQuery Mobile, parce que vous modifiez le bouton qui est invisible ils et remplacé par une majoration de jQuery Mobile génère.Vous ONT POUR utilisation jQueryMobile de la méthode de désactivation du bouton avec un bon sélecteur de comme:
Si je suis en train de lire cette question correctement, vous avez peut-être manqué un jQuery mobile "bouton" widget n'est pas la même chose qu'un bouton HTML de l'élément. Je pense que cela se résume à vous ne pouvez pas appeler
$('input').button('disable')
sauf si vous avez déjà appelé$('input').button();
pour initialiser un jQuery Mobile bouton de widget sur votre entrée.Bien sûr, vous ne voulez pas être à l'aide de jQuery widget bouton de fonctionnalité, dans lequel cas d'Alexandre réponse devrait vous mettre à droite.
data-role="button"
également pertinent de pages html (pas mobile)? Quelle version?Ce qui semble être nécessaire de définir réellement le bouton comme un bouton de widget.
J'ai eu le même problème (bêta 1)
Je n'ai
dans ma fenêtre prêt gestionnaire, après cela, il a travaillé pour le faire comme il est dit dans les docs, c'est à dire:
Je suppose que cela a à voir avec ce que jqm est la conversion de la balise, mais n'est pas réellement instatiating un vrai bouton de widget pour les boutons et les boutons de lien.
J'ai créé un widget qui peut complètement désactiver ou de présenter une vue en lecture seule du contenu sur votre page. Il désactive tous les boutons, les ancres, supprime tous les événements de clic, etc., et re-permettre à tous de retour de nouveau. Il prend même en charge tous jQuery UI widgets ainsi. Je l'ai créé pour une application que j'ai écrit au travail. Vous êtes libre de l'utiliser.
Check it out at ( http://www.dougestep.com/dme/jquery-disabler-widget ).
Essayer l'un des énoncés ci-dessous:
$('input[type=submit]').attr('disabled','disabled');
ou
$('input[type=button]').attr('disabled','disabled');
Mise à JOUR
Pour cible un bouton particulier, vu le code HTML que vous avez fournies:
$('div#DT1S input[type=button]').attr('disabled','disabled');
http://jsfiddle.net/kZcd8/
Ce un travail pour moi, vous pourriez avoir besoin de séance d'entraînement de la logique, de désactiver -activer
Selon mes constatations...
Ce Javascript erreur se produit lorsque vous exécutez le bouton() sur un élément avec un sélecteur et essayez d'utiliser une fonction/méthode de bouton() avec un autre sélecteur sur le même élément.
Par exemple, voici le code HTML:
De sorte que vous bouton execute() sur celui-ci:
Ensuite, vous essayez de le désactiver, cette fois, non pas en utilisant la classe que vous avez initié, mais plutôt à l'aide de l'ID, alors vous obtiendrez l'erreur comme ce fil est intitulé:
Donc plutôt d'utiliser la classe à nouveau comme vous l'a initié, qui va résoudre le problème.
Pour bouton de lien,
Appel
.button('enable')
méthode ne donne que de l'effet, mais fonctionnellement ne pas.Mais j'ai un truc. Nous pourrions utiliser HTML5
data-
attribut save/valeur d'échange dehref
etonclick
.voir:
mode code source:
Vous obtenez cette erreur, probablement parce que l'élément n'est pas dans les DOM encore. $(document).prêt(); ne fonctionne pas. Essayez d'ajouter votre code à un pageinit gestionnaire d'événement.
Ici est un exemple:
Espère que ça aide quelqu'un
Pour la désactivation d'un bouton ajouter classe css
disabled
à elle . écrirePour jQuery Mobile 1.4.5:
pour ancrer les boutons, la classe CSS est:
ui-state-disabled
, et pour les boutons d'entrée c'est juste assez pour faire basculer ledisabled
attribut.JS:
HTML:
BTW, pour les boutons d'entrée, il y a une autre méthode:
Permettre:
Désactiver: