Le problème avec les cases est principalement de les amener à travailler en plein IE6, puisque les change
événement se déclenche à toutes sortes de temps inutiles.
Commençons par la fonction de faire la invalidantes:
function onCheckChange() {
if ($("#all-day-checkbox").is(':checked'))
$("select").attr('disabled', 'disabled');
else
$("select").removeAttr('disabled');
}
Notez que j'utilise ici juste select
qui est certainement plus large que vous ne voulez, mais select.some-class-to-identify-the-hours-and-minutes-and-seconds-dropdowns
fonctionnerait aussi bien.
Notez également que la fonction détermine elle-même si la case est cochée, ce qui la rend idempotente: il est possible d'appeler plusieurs fois pendant le processus de vérification d'une boîte.
Maintenant, nous avons juste besoin de lier cette fonction à quelques événements différents:
$("#all-day-checkbox").click(onCheckChange).change(onCheckChange);
$("label[for=all-day-checkbox]").click(onCheckChange);
voudrais-je mettre tout cela à l'intérieur (document) .prêt ?? – leora
@oo - vous devrez mettre au moins le code de liaison dans le (document) .ready, vous pouvez y mettre la fonction onCheckChange, mais ce n'est pas nécessaire. – karim79
Quelle est la deuxième ligne de l'étiquette en bas? – leora