Obliger de cocher une case dans un formulaire

Camomille Messages postés 16 Statut Membre -  
 Spartom117 -
Salut à tous,

je galère depuis hier sur une chose toute simple. Je veux obliger celui qui rempli un formulaire de cocher une case genre "j'accepte le règlement"
J'ai déjà un script qui vérifie que les champs sont bien remplis. Quand je remplace "checkbox" par "text" pour ma case à cocher, l'alerte a bien lieu! Mais ce que je veux, c'est une checkbox ou deux "radios"

Merci pour votre aide.

bien amicalement

Camomille

8 réponses

PhP Messages postés 1774 Statut Membre 606
 
Lo Camomille,

Voici un small exemple qui empeche de valider un formulaire tq la case à cocher n'est pas cochée :



<html>

<head>
<script>
<!--

function check(frm,elt)
{
if (!document.forms[frm].elements[elt].checked)
{
alert("Hé ho et la case à cocher on l'oublie !")
return false;
}
else
{
return true;
}
}

// -->
</script>
<body>
<form id="formulaire" action="http://www.commentcamarche.com" method="post" onsubmit="return check('formulaire','lu')">
Lu et approuvé <input type="checkbox" name="lu"><br>
<input type="submit" value="Envoyer">
</form>
</body>
</html>


PhP    [Push the button,Don't push the
.         button,Trip the station,Change the channel]
3
esox_ch Messages postés 770 Statut Membre 49
 
En JS j'imagine?

Eternel Questionneur. Seul et Unique membre de la : SPdLM
=> Société Protectrice des Langages Maltraités
0
Camomille Messages postés 16 Statut Membre 9
 
Oui l'ami, en JS !!

...à moins que tu ais une autre idée ???


bien amicalement

Camomille
0
omar
 
Et bien mon gaillard il faut tester cela dans ton javascript
copier/coller:

La gestion des radio-boutons est assez complexe. Voici le code HTML de ce sondage :
<FORM>
<INPUT type="radio" name="os" value="Windows 95" checked>Windows 95
<INPUT type="radio" name="os" value="Windows 98">Windows 98
<INPUT type="radio" name="os" value="Windows NT">Windows NT
<INPUT type="radio" name="os" value="Linux">Linux
<INPUT type="radio" name="os" value="Autre">Autre
<INPUT type="button" value="Tester"
onClick="testerRadio(this.form.os)">

<SCRIPT language="javascript">
function testerRadio(radio) {
for (var i=0; i<radio.length;i++) {
if (radio[i].checked) {
alert("Système = "+radio[i].value)
}
}
}
</SCRIPT>
La déclaration du formulaire crée un groupe de radio-boutons liés : le nom du groupe est os.
La fonction javascript a comme paramètre le groupe des radio-boutons.
Une boucle parcourt la liste des boutons du groupe. On repère le bouton qui a la propriété checked à true et on affiche alors la valeur correspondante.

Pr voir l extrait plus ample ce mon copier/coller cf
http://www.toutjavascript.com/savoir/savoir06_2.php3

Ou sinon va sur google et tape +javascript +radio

A+ omar
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Camomille Messages postés 16 Statut Membre 9
 
Merci pour vos deux réponses.
Le grand hic c'est que j'ai déjà un "onsubmit" !! Voici la portion de code qui nous intéresse:

function FValidateControl(control) {
if (control.value=="") {
alert(control.name+": N'EST PAS REMPLI!!")
control.focus()
return false }
return true }

function FSubmitValidation(form) {
if (!FValidateControl(form.TYPE)) return false
if (!FValidateControl(form.ARRIVAL)) return false
if (!FValidateControl(form.FIRST_NAME)) return false
if (!FValidateControl(form.ADRESS)) return false
if (!FValidateControl(form.ACCEPT)) return false
return true }


// end hiding from old browsers -->
</script>
</head>


<form action="calcul.php" methode="POST"
onsubmit="return FSubmitValidation(this)">

<input
type="checkbox" name="ACCEPT"value="Oui" tabindex="14">J'accepte les conditions de réservation.
</font></p>
<INPUT type=hidden maxLength=255 size=38 name=date value=<? echo strftime("%Y/%m/%d/%H/%M/%S ");?>><FONT
color=#ff0000></FONT></TD></TR>
<p>     <input
value="Envoyer" type="submit"

C'est bien entendu la case "ACCEPT" qui pose problème ;) ;)

Un GRAND merci d'avance


bien amicalement

Camomille
0
PhP Messages postés 1774 Statut Membre 606
 
Bsr

Qu'à cela ne tienne ! Si le code JS ne convient pas et bien change le !


Et ca donne :

function FValidateControl(control) { 


ok=false;

switch (control.type) {
case "text" :
ok= !(control.value=="");
break;

case "checkbox" :
ok= control.checked;
break;

default :
alert("Impossible de tester le controle : "+control.name+"\nType "+control.type+" non prévu.");
return false;
}

if (!ok)
{
alert(control.name+": N'EST PAS REMPLI!!");
control.focus();
}
return ok;
}



J'ai juste ajouté un test sur le type de contrôle (zone de texte, case à cocher etc ...) et selon le type je fais telle ou telle action

J'ai seulement testé le type "checkbox", mais tu peux ajouter les types "radio", "button" etc ... Sinon tu auras le msg d'erreur par défaut.



PhP    [Push the button,Don't push the
.         button,Trip the station,Change the channel]
0
Camomille Messages postés 16 Statut Membre 9
 
Merci Php.

ça m'a bien aidé! Ton script fonctionne nickel pour les "text" et "checkbox". J'en ai fait une deuxième fonction qui n'affecte que la "checkbox" pour me permettre d'envoyer une alerte plus adéquate.

Encore mille fois merci pour ce sérieux coup de main!

bien amicalement

Camomille
0
Spartom117
 
Bonjour a tous
je fais des recherches pour resoudre mon probleme qui me semble se situer dans le meme secteur
et puisque vous avez reussi a aider Camomille
Je me dis pourquoi pas vous poser la question
xD

Voila mon probleme :
j essaye de verifier tous les champs de mon formulaire et d'envoyer a la fin par mail le contenu de celui-ci
certe l'envoie se passe nikel
mais que les champs soit renseigné // ou pas lol
j'aimerai savoir comment je pourais faire pour verifier mes champs avant d'envoyer le mail

je vous joind mon code
merci d'avance pour toutes les reponses


code :
<SCRIPT language="javascript">
function ValidateControl(control) {
ok=false;
switch (control.type) {
case "text" :
ok= !(control.value=="");
break;
case "checkbox" :
ok= control.checked;
break;
default :
alert("Impossible de tester le controle : "+control.name+"\nType "+control.type+" non prévu.");
return false;
}
if (!ok)
{
alert(control.name+": N'EST PAS REMPLI!!");
control.focus();
}
return ok;
}

function ValidateControlMail(mail) {
ok=false;
if ((mail.indexOf("@")>=0)&&(mail.indexOf(".")>=0)) {
ok=true;
}
else {
alert("Mail invalide !");
return false
}
}

function SubmitValidation(form) {
if (!ValidateControl(form.Nom)) return false
if (!ValidateControl(form.Prenom)) return false
if (!ValidateControlMail(form.Email)) return false
if (!ValidateControl(form.Message)) return false
return true }
</SCRIPT>


</head>
<body>
<h1 class="Titre">Contact du CREPS PACA</h1>
<p> </p>
<p> </p>
<form method=POST action=formmail.php >
<table>
<tr>
<td width="125">Votre Nom : </td>
<td width="346"><input type=text name=Nom size=30></td></tr>
<tr>
<td>Votre Prenom : </td>
<td><input type=text name=Prenom size=30 /></td></tr>
<tr>
<td>Votre Email : </td>
<td>
<INPUT type="texte" name="Email" value="Adresse Email" size="30">
</td>
</tr>
<tr>
<td colspan=2>Votre message: <br>
<textarea COLS=50 ROWS=6 name=Message></textarea>
</td></tr>
</table>
<br>
<input type=submit value=Envoyer onsubmit="return SubmitValidation(this)"> - <input type=reset value=Annuler>
</form>
<p> </p>
</body>
0