J'ai besoin de savoir quand une case à cocher de la page est cochée :
par exemple
<input type="checkbox">
J'ai essayé ceci dans Jquery
$('input type=["checkbox"]').change(function(){
alert('changed');
});
Mais ça n'a pas marché, des idées ?
J'ai besoin de savoir quand une case à cocher de la page est cochée :
par exemple
<input type="checkbox">
J'ai essayé ceci dans Jquery
$('input type=["checkbox"]').change(function(){
alert('changed');
});
Mais ça n'a pas marché, des idées ?
Utilisez le change()
et l'événement is()
test :
$('input:checkbox').change(
function(){
if ($(this).is(':checked')) {
alert('checked');
}
});
J'ai remplacé ce qui précède par ce qui suit, en raison de ma dépendance stupide à l'égard de jQuery (dans l'onglet if
) alors que les propriétés DOM seraient tout aussi appropriées, et aussi moins chères à utiliser. Le sélecteur a également été modifié, afin de lui permettre d'être passé, dans les navigateurs qui le supportent, à la propriété DOM document.querySelectorAll()
méthode :
$('input[type=checkbox]').change(
function(){
if (this.checked) {
alert('checked');
}
});
Pour terminer, la même chose est facilement réalisable en JavaScript :
var checkboxes = document.querySelectorAll('input[type=checkbox]'),
checkboxArray = Array.from( checkboxes );
function confirmCheck() {
if (this.checked) {
alert('checked');
}
}
checkboxArray.forEach(function(checkbox) {
checkbox.addEventListener('change', confirmCheck);
});
Références :
$('input:checkbox').live('change', function(){
if($(this).is(':checked')){
alert('checked');
} else {
alert('un-checked');
}
});
jsfiddle : http://jsfiddle.net/7Zg3x/1/
Comme je ne sais pas comment ni quand l'élément d'entrée est ajouté au domaine, l'utilisation de .live() pour les exemples permet de les rendre pertinents même si l'élément est injecté de manière dynamique. D'une manière générale, .live() s'appliquera aux éléments "maintenant et dans le futur" (comme le dit la documentation) et .click() est un raccourci pour .bind('click', function() {}) qui ne s'applique qu'aux éléments déjà présents dans le domaine.
@Jasper : live
est beaucoup plus lente que la liaison normale, parce que l'événement doit remonter. Il est beaucoup plus logique d'utiliser la méthode change
lié directement à l'élément, si celui-ci est statique.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
Le problème est que
$('input type=["checkbox"]')
n'est pas un sélecteur valide. Il devrait être$('input[type=checkbox]')
à la place. Ce qui serait encore mieux, ce serait$('input:checkbox')
. ;)