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 19/10/2011, 21h42   #1
Nouveau Membre du Club
 
Inscription : septembre 2006
Messages : 132
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 132
Points : 29
Points : 29
Par défaut Bouton submit grisé si AU MOINS une checkbox n'est pas cochée

Bonsoir,
J'ai un formulaire avec une checkbox et un bouton submit. Ce dernier est grisé tant que je ne coche pas la case. Jusque là, tout fonctionne parfaitement.
Voici le code javascript du formulaire qui fonctionne:
Code :
1
2
3
4
5
6
7
8
function ChangeStatut(formulaire){
	if(formulaire.tout.checked == true) {
		formulaire.submit.disabled = false
	}
	if(formulaire.tout.checked == false) {
		formulaire.submit.disabled = true 
	}
}
Seulement j'ai un autre formulaire avec des dizaines de checkbox générées par une requête mysql et j'aimerais le même comportement que mon premier formulaire. Seulement je ne vois pas comment faire.

Voici mon formulaire que j'ai débarassé de tout le code superflu pour la clarté.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
		<form name='form' id='form' action='index.php?P=envoimessage' method='POST'>
 
				<?php
 
				$query = "SELECT ID, Section, Nom, Prenom, Adresse_mail FROM adherents WHERE Adresse_mail <> '' ORDER BY Nom, Prenom";
				$result = mysql_query($query) or die ('Erreur SQL !'.$sql.''.mysql_error());
 
				while($row = mysql_fetch_array($result)){
				$id_adh=$row['ID'];
				echo "<input type='checkbox' name='dest[]' id='dest[]' value='".$id_adh."'>".addslashes($row['Nom'])." ".addslashes($row['Prenom'])."\n";
					}
				?>
			<input ype='submit' name='submit' id='submit' value='Ecrire'>
		</form>
J'ai essayé ce code javascript
Code :
1
2
3
4
5
6
7
8
function ChangeStatut2(formulaire){
	if(formulaire.dest[].checked == true) {
		formulaire.submit.disabled = false
	}
	if(formulaire.dest[].checked == false) {
		formulaire.submit.disabled = true 
	}
}
mais sans succès. Ca me fait une erreur de fonction.

Quelqu'un peut m'aider svp ?
Equinoxe5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 22h57   #2
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
Bonsoir,
merci de mettre le code HTML généré par le PHP, il sera ainsi plus facile de t'aider.
Les règles incontournables d'utilisation de ce forum

Pour le principe, à chaque click sur une chekbox tu parcours toutes les checkbox du formulaire et si aucune n'est cochée tu disables le bouton.
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 01h36   #3
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 580
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 580
Points : 4 085
Points : 4 085
Ce détail à corriger :
Code :
<input ype='submit' name='submit' id='submit' value='Ecrire'>
Et si je puis me permettre cette petite refactorisation...
Code :
1
2
3
4
5
6
7
8
9
10
11
12
/*function ChangeStatut(formulaire){
	if(formulaire.tout.checked == true) {
		formulaire.submit.disabled = false
	}
	if(formulaire.tout.checked == false) {
		formulaire.submit.disabled = true 
	}
}*/
 
function ChangeStatut(formulaire){
	formulaire.submit.disabled = !formulaire.tout.checked;
}
Même effet, avec un "très léger" gain de lisibilité ^^
Dans le même esprit, plutôt que de copier-coller la fonction et de lui ajouter un "2" pour modifier un point de détail, faisons plutôt un pas vers la généricité... non ?

Mais pour aller plus loin, comme dit justement NoSmoking, il nous faudrait le code généré, déjà, et voir aussi éventuellement l'appel à la fonction ChangeStatut.
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI 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 16h20.


 
 
 
 
Partenaires

Hébergement Web