Comment puis-je désactiver un bouton de soumission lors de la case à décocher?
J'ai quelque chose ici qui ne semble pas prête à m'aider à désactiver le bouton soumettre. des idées?
<input type="checkbox" checked="checked" id="checky"><a href="#">terms and conditions</a>
<input type="submit" id="postme" value="submit">
$('#checky').click(function(){
if($(this).checked == false){
$('#postme').attr("disabled","disabled");
} else {
$('#postme').removeAttr('disabled');
}
});
OriginalL'auteur pivotal developer | 2011-03-28
Vous devez vous connecter pour publier un commentaire.
Vous devriez vérifier pour l'attribut
checked
et pas la méthode.Mis à jour le violon : http://jsfiddle.net/8YBu5/7/
MODIFIER
Rappelez-vous que ce code doit être enveloppé à l'intérieur
$(document).ready()
ou de mettre au bas de votre code html, sinon votre JS va se lier à des éléments du DOM qui n'ont pas encore été chargé et va échouer.En l'enveloppant dans .prêt()
Ce code peut être mis n'importe où dans le document et ne déclenche une fois le DOM est prêt de sorte que vous n'avez pas à vous soucier prématurée des déclencheurs.
De le mettre en bas de votre document
Si vous êtes à la mettre au fond de votre document, vous n'avez pas besoin de l'envelopper dans
.ready()
parce que le javascript ne seront pas lus jusqu'à ce que tout soit chargé. Il y a une amélioration des performances dans cette méthode (si vous avez beaucoup de JS)Vous pouvez utiliser une de ces méthodes pour vous assurer que votre JS lie événement les méthodes de manipulation du DOM, des éléments ne après ils ont fini de se charger.
il fonctionne parfaitement sur le jsfiddle, cependant sur mon ide le script ne marche pas à même de les exécuter. j'ai placé une alerte de test après la fonction de clic, mais il n'a même pas de déclenchement. est-il une raison pourquoi?
si vous utilisez firefox, appuyez sur CTRL + MAJ + J et de regarder l'onglet erreurs pour vérifier ce que les erreurs sont présentes. Également faire, assurez-vous d'inclure jquery et assurez-vous que cette méthode est enveloppé à l'intérieur
$(document).ready(function(){})
si vous le faites, alors vous devez le mettre à bas. L'édition de ma question pour vous montrer comment
Comme de jQuery 1.6, vous devez utiliser
prop
au lieu deattr
, voir ma réponse ci-dessous. Aussi golfs mieux.OriginalL'auteur JohnP
.attr('checked') == false
méthode. Beaucoup plus lisible et beau.OriginalL'auteur manji
Avant de jQuery 1.6
attr
était OK, après 1,6 vous devez utiliserprop
.Des attributs et des propriétés différentes choses, mais malheureusement, jQuery a pris un long moment pour différencier entre eux.
Voir aussi: .prop() vs .attr()
OriginalL'auteur Ciro Santilli 新疆改造中心 六四事件 法轮功
changement
$(this).checked
àif($(this).attr('checked') == false){
Ici vous allez.
OriginalL'auteur Santosh Linkha
Essayer de cette façon,
OriginalL'auteur Shaitender Singh
Essayer cette
OriginalL'auteur AnnMary
Ajouter le bouton
#postme
cliquez sur un événement qui vérifie si la case est cochée. Si elle est cochée, retourner false, sinon renvoie la valeur true.OriginalL'auteur Andrew Jackman