Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources 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 13/07/2011, 10h10   #1
Nouveau Membre du Club
 
Chauvin Baptiste
Inscription : décembre 2009
Messages : 59
Détails du profil
Informations personnelles :
Nom : Chauvin Baptiste

Informations forums :
Inscription : décembre 2009
Messages : 59
Points : 26
Points : 26
Par défaut Evènement sur un checked

Bonjour à tous,

Je cherche depuis hier soir à créer un évènement qui arrive si un checkbox est coché. Grosso modo : j'ai un formulaire avec une liste déroulante qui doit transmettre des valeurs en méthode $_POST. Je souhaite que quand l'utilisateur clique sur le checkbox lié à cette liste déroulante celle-ci devienne grisée et ne transmette qu'une valeur NULL.

Mais j'ai un peu de mal à obtenir un résultat acceptable

Voici mon code HTML:
Code :
1
2
3
4
5
6
7
8
9
10
11
<div>
	<label class="description">D&eacute;partement</label>
	<select class="elem_select_1" id="departement" name="departement"> 
		<option selected value="1">choix 1</option>
		<option value="2">choix 2</option>
		<option value="3">choix 3</option>
		<option value="4">choix 4</option>
		<option value="5">choix 5</option>
	</select>&nbsp;
	<input type="checkbox" for="departement" name="nullDep" value="true" click="sansDepartement()" />&nbsp;NULL
</div>
Et mon Javascript:
Code :
1
2
3
4
5
function sansDepartement(){
	if(document.getElementById(nullDep).checked==true){
		document.getElementById(departement).value=null;
	}
}
Est-ce que vous voyez ce qui ne va pas dans mon code?
BLJ.CHAUVIN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 10h40   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 803
Points : 35 803
Code :
if(document.getElementById(nullDep).checked==true)
Tout d'abord, getElementById attend en paramètre une chaine de caractère, donc tel que tu l'écris, JavaScript considère que nullDep est une variable et comme il y a peu de chances que cette variable existe, ça renvoie une erreur

D'autre part, pour autant que les mots ont un sens, getElementById signifie "récupère l'élément par son id", mais dans ton code, l'input n'a pas d'id mais un name.

Aussi, for n'est pas un attribut valide pour une balise input...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 10h41   #3
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 019
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 019
Points : 45 114
Points : 45 114
onclick .. pas click
__________________
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
Vieux 13/07/2011, 11h33   #4
Nouveau Membre du Club
 
Chauvin Baptiste
Inscription : décembre 2009
Messages : 59
Détails du profil
Informations personnelles :
Nom : Chauvin Baptiste

Informations forums :
Inscription : décembre 2009
Messages : 59
Points : 26
Points : 26
Tout d'abord merci pour vos réponses.

Citation:
Envoyé par Bovino
getElementById signifie "récupère l'élément par son id", mais dans ton code, l'input n'a pas d'id mais un name.
Je n'avais même pas vu qu'il manquait, en effet ça peut jouer

Citation:
Envoyé par SpaceFrog
onclick .. pas click
Ok message reçu...

Citation:
Envoyé par Bovino
Code :
if(document.getElementById(nullDep).checked==true)
Tout d'abord, getElementById attend en paramètre une chaine de caractère, donc tel que tu l'écris, JavaScript considère que nullDep est une variable et comme il y a peu de chances que cette variable existe, ça renvoie une erreur
Là par contre je n'ai pas exactement compris ce que tu veux dire, et encore moins quoi faire pour remédier à ce problème.
BLJ.CHAUVIN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 11h38   #5
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Bonsoir,

Ben tu ajoutes un id="nullDep" sur ton checkbox et mettre sa valeur entre quote dans le javascript : if(document.getElementById("nullDep").checked)
A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 12h34   #6
Nouveau Membre du Club
 
Chauvin Baptiste
Inscription : décembre 2009
Messages : 59
Détails du profil
Informations personnelles :
Nom : Chauvin Baptiste

Informations forums :
Inscription : décembre 2009
Messages : 59
Points : 26
Points : 26
Bon j'en suis là pour l'instant:

Dans le body:
Code :
1
2
3
4
5
6
7
8
9
10
11
<div>
	<label class="description">D&eacute;partement</label>
	<select class="elem_select_1" id="departement" name="departement"> 
		<option selected value="1">choix 1</option>
		<option value="2">choix 2</option>
		<option value="3">choix 3</option>
		<option value="4">choix 4</option>
		<option value="5">choix 5</option>
	</select>&nbsp;
	<input type="checkbox" id="nullDep" name="nullDep" value="" onclick="sansDepartement()" />&nbsp;NULL
</div>
Dans le head:
Code :
1
2
3
4
5
function sansDepartement(){
	if(document.getElementById("nullDep").checked){
		document.getElementById("departement").value=null;
	}
}
Quand je coche le checkbox, la liste déroulante perd bien le option par défaut mais ne renvoie pas pour autant la valeur NULL. Donc l'évènement lié au check est bien reconnu, mais le traitement ensuite ne fonctionne pas.
BLJ.CHAUVIN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 12h47   #7
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 803
Points : 35 803
Le value d'un select correspond au value de l'option sélectionnée et par défaut de la première option. Donc quand tu affectes
Code :
document.getElementById("departement").value=null;
aucune option n'a comme value null (et pour cause) donc le value sera automatiquement ajusté à "1" (celui de la première option)
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2011, 14h43   #8
Membre Expert
 
Avatar de Watilin
 
Homme Matilin Torre
Étudiant
Inscription : juin 2010
Messages : 679
Détails du profil
Informations personnelles :
Nom : Homme Matilin Torre
Âge : 23
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 679
Points : 1 202
Points : 1 202
Moi ça me paraît cohérent, et surtout plus simple, de transmettre les valeurs du formulaire telles quelles et des les traiter côté serveur comme on fait d'habitude. En plus, ça permet de faire fonctionner correctement le formulaire même si JS est désactivé : c'est de l'amélioration progressive.

Si la case est cochée, ça apparaît dans les paramètres POST, et le serveur en déduit qu'il ne faut pas traiter les départements. Un simple if suffit…

On va au plus simple et on gagne sur tous les plans
__________________
Disposition de clavier ergonomique française : Bépo
Watilin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h59.


 
 
 
 
Partenaires

Hébergement Web