Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/05/2011, 10h11   #1
Invité régulier
 
Inscription : octobre 2007
Messages : 56
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : octobre 2007
Messages : 56
Points : 8
Points : 8
Par défaut Checkbox non coché avec .toggle()

Bonjour

Je ne sais pas pourquoi, avec la méthode .toggle() mon checkbox fonctionne mais il n'est pas checké visuellement.

Merci d'avance !

Voici le code simple :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
$(function() {
 
	$('input#lin').toggle(function(){
		//$('input#lin').attr('checked');
		  $('input[name=list]').attr('checked', true);
	},
	function(){
                //$('input#lin').removeAttr('checked');
		$('input[name=list]').attr('checked', false);
	});
 
});
et

Code :
<input type="checkbox" name="list" id="lin">
n3x1n² est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 10h33   #2
Membre Expert
 
Avatar de Loceka
 
Tlouye Ci
Inscription : mars 2004
Messages : 1 450
Détails du profil
Informations personnelles :
Nom : Tlouye Ci

Informations forums :
Inscription : mars 2004
Messages : 1 450
Points : 2 149
Points : 2 149
Parce que la valeur de l'attribut "checked" n'est pas un booléen, mais "checked" si c'est coché. L'attribut n'est pas présent si l'élément n'est pas coché.
Loceka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 10h41   #3
Invité régulier
 
Inscription : octobre 2007
Messages : 56
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : octobre 2007
Messages : 56
Points : 8
Points : 8
Citation:
Envoyé par Loceka Voir le message
Parce que la valeur de l'attribut "checked" n'est pas un booléen, mais "checked" si c'est coché.
En jQuery il y a 3 façon de "checker", en tout cas ceux que je connaisse :
Code :
1
2
3
4
 
$('input#lin').attr('checked');
$('input#lin').attr('checked', 'checked');
$('input#lin').attr('checked', true);
Je peux mettre les 2 premiers mais ça marchera quand meme pas.
n3x1n² est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 10h42   #4
Membre expérimenté
 
Avatar de Pilru
 
Homme
Dev ASP.NET/jQuery ; Admin ORACLE
Inscription : septembre 2007
Messages : 418
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Dev ASP.NET/jQuery ; Admin ORACLE

Informations forums :
Inscription : septembre 2007
Messages : 418
Points : 531
Points : 531
Quelle version de jQuery utilises-tu ?
Pilru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 10h42   #5
Invité régulier
 
Inscription : octobre 2007
Messages : 56
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : octobre 2007
Messages : 56
Points : 8
Points : 8
Code :
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
n3x1n² est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 11h48   #6
Membre expérimenté
 
Avatar de Pilru
 
Homme
Dev ASP.NET/jQuery ; Admin ORACLE
Inscription : septembre 2007
Messages : 418
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Dev ASP.NET/jQuery ; Admin ORACLE

Informations forums :
Inscription : septembre 2007
Messages : 418
Points : 531
Points : 531
Après une rapide recherche sur le net, effectivement toggle casse le fonctionnement d'une checkbox.

Tu peux utiliser change() à la place :

Code :
1
2
3
4
 
        $('#lin').change(function() {
            $('input[name=list]').attr('checked', this.checked);
        });
Pilru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 11h52   #7
Invité régulier
 
Inscription : octobre 2007
Messages : 56
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : octobre 2007
Messages : 56
Points : 8
Points : 8
Je peux pas utiliser .change() car il me semble que je peux pas mettre "if" là-dedans....
ça rentre jamais dans "else".

Exemple :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
 
		var $lin = $('input#lin');
 
		$lin.change(function(){
 
			if($(this).is(":checked")){
				alert("2");
				$('tr#date'+idLeftItem).empty();
				$lin.attr('checked', false);
 
			}
			else{
 
				alert("1");
				$lin.attr('checked');
				$('tr#date'+idLeftItem).append(dateLin); //insert input
				$('input#pickLin').datepicker(); //load calendar
			}
 
		});
n3x1n² est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 13h18   #8
Membre expérimenté
 
Avatar de Pilru
 
Homme
Dev ASP.NET/jQuery ; Admin ORACLE
Inscription : septembre 2007
Messages : 418
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Dev ASP.NET/jQuery ; Admin ORACLE

Informations forums :
Inscription : septembre 2007
Messages : 418
Points : 531
Points : 531
Le code suivant fonctionne très bien :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
    $(document).ready(function() {
        $('#lin').change(function() {
            if ($(this).is(":checked")) {
                alert("2");
            }
            else {
                alert("1");
            }
        });
    });
A quoi sert $lin.attr('checked', false); dans le if ?
Et $lin.attr('checked'); dans le else ?
Pilru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 13h51   #9
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
Code :
1
2
3
4
5
$(document).ready(function() {
        $('#lin').change(function() {
                alert( ($(this).is(":checked"))?"2":"1");
                });
    });
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h49.


 
 
 
 
Partenaires

Hébergement Web