Accueil > Forum > > > > Formulaire+checkbox
Formulaire+checkbox
dimanche 24 juillet 2005 à 20:09:04 |
Formulaire+checkbox

CHABRY
|
Bonjour,

je suis un débutant en javascript et je compte écrire du code
javascript générique visant la validation de n'importe quel formulaire
indépendemment de ses champs.
J'ai commencé par implémenter une fonction qui vérifie que les
champs ne sont pas vides, mais j'ai rencontré un pb au niveau des
checkbox.
Voilà mon code accompagné du formulaire, merci de vouloir m'aider à
pouvoir valider les checkbox mais aussi si vous pouvez me proposer des
idées d'optimisation je serais vraiment reconnaissant.
MERCI!
CODE
<HTML>
<HEAD>
<link rel="stylesheet" type="text/css" href="style.css">
<SCRIPT LANGUAGE="javascript">
function tester(nbform)
{
for (i=0; i<nbform; i++) //on parcoure tous les formulaires de la page HTML
{
var formulaire=document.forms[i];
for (n=0; n<formulaire.elements.length;n++) //On parcoure tous les champs de saisie de chaque formulaire
{
switch (formulaire.elements[n].type) // On traite chaque champs de saisie selon son type
{
case "text":
if (formulaire.elements[n].value=="")
{
alert("champs texte vide!");
//formulaire.elements[n].style.backgroundColor="#DC143C";
return false;
}
//write(formulaire.elements[n].value);
break;
case "password":
if (formulaire.elements[n].value=="")
{
alert("champs password vide!");
//formulaire.elements[n].style.backgroundColor="#DC143C";
return false;
}
//write(formulaire.elements[n].value);
break;
case "textarea":
if (formulaire.elements[n].value=="")
{
alert("champs textarea vide!");
//formulaire.elements[n].style.backgroundColor="#DC143C";
return false;
}
//write(formulaire.elements[n].value);
break;
case "select-one":
champs = eval('formulaire.elements[n].options[formulaire.elements[n].selectedIndex].value');
if (champs=="-20")
{
alert("Sélectionnez un élément de la liste!");
//formulaire.elements[n].style.backgroundColor="#DC143C";
return false;
}
//write(formulaire.elements[n].value);
break;
case "radio":
champs = eval('formulaire.elements[n].name');
var err=true;
for ( var n=0;n<formulaire[champs].length;n++ )
{ if ( formulaire[champs][n].checked )
{ err=false;
n=champs.length; } }
if ( err )
{ alert("Sélectionnez un bouton radio!");
//formulaire.elements[n].style.backgroundColor="#DC143C";
return false; }
//write(formulaire.elements[n].value);
break;
case "checkbox":
champs = eval('formulaire.elements[n].name');
var err=true;
for ( var n=0;n<formulaire[champs].length;n++ )
{ if ( formulaire[champs][n].checked )
{ alert("checked!"); //pour tester qu'il entre dans la boucle.
err=false;
n=champs.length; } }
if ( err )
{ alert("Sélectionnez un checkbox!");
//formulaire.elements[n].style.backgroundColor="#DC143C";
return false; }
//write(formulaire.elements[n].value);
break;
default:
alert(formulaire.elements[n].type);
break;
}
}
alert("Formulaire saisi avec succés!");
}
}
</script>
</HEAD>
<BODY bgcolor=White vlink=Gray alink=Gray>
<FORM Name="formulaire" method="Post" Action="" onsubmit="Javascript:return tester(1);">
<table width="624" border="1">
<tr>
<td width="385">Civilité (sans repositionnement sur un item): </td>
<td width="223"><select name="CIVILITE">
<option value="-20">- Sélectionnez -</option>
<option value="1">Mr</option>
<option value="2">Mlle</option>
<option value="3">Mme</option>
</select></td>
</tr>
<tr>
<td>Situation (avec repositionnement sur l'item 1):</td>
<td><select name="SITUATION">
<option value="-20">- Sélectionnez -</option>
<option value="1">Célibataire</option>
<option value="2">Divorcé</option>
<option value="3">Marié</option>
</select></td>
</tr>
<tr>
<td>Nom :</td>
<td><input name="nom" size=25></td>
</tr>
<tr>
<td>Mot de passe </td>
<td><input name="pass" type="password" id="pass"></td>
</tr>
<tr>
<td>Confirmation du mot de passe </td>
<td><input name="conf_pass" type="password" id="conf_pass"></td>
</tr>
<tr>
<td>Code postal :</td>
<td><input name="postal" size=25></td>
</tr>
<tr>
<td>Saisissez votre email :</td>
<td><input name="email" size=25></td>
</tr>
<tr>
<td>Adresse:</td>
<td><textarea name="adresse" id="adresse"></textarea></td>
</tr>
<tr>
<td>Pays:</td>
<td><select name="pays" id="pays">
<option value="-20" selected>- Sélectionnez -</option>
<option value="1">Belgique</option>
<option value="2">France</option>
</select></td>
</tr>
<tr>
<td>Niveau:</td>
<td><input name="radiobutton" type="radio" value="radiobutton">
Etudiant
<input name="radiobutton" type="radio" value="radiobutton">
Professionnel</td>
</tr>
<tr>
<td>Compétences:</td>
<td><input type="checkbox" name="checkbox" value="checkbox">
SGBD
<input type="checkbox" name="checkbox2" value="checkbox">
UNIX
<input type="checkbox" name="checkbox3" value="checkbox">
Dev Web </td>
</tr>
<tr>
<td><input type="submit" name="valider" value="Validation"></td>
<td> </td>
</tr>
</table>
<br>
</FORM>
</BODY>
</HTML>

|
|
lundi 25 juillet 2005 à 17:48:55 |
Re : Formulaire+checkbox

Steph666
|
Bonjour,
Sit tu veux tester si tous tes checkbox sont cochés, il te suffit de remplacer dans ton code :
> case "checkbox": > if (formulaire.elements[n].checked == false) { > alert("Sélectionnez un checkbox!"); > return false; > } > break;
|
|
lundi 25 juillet 2005 à 18:07:57 |
Re : Formulaire+checkbox

Steph666
|
Bonjour,
g pas tout posté :-)
voilà voilà :
> case "checkbox": > champs = eval('formulaire.elements[n].name');
> if (formulaire[champs].length > 0) { > var err=true;
> for ( var n=0;n<formulaire[champs].length;n++ ) > { if ( formulaire[champs][n].checked ) > { alert("checked!"); //pour tester qu'il entre dans la boucle. > err=false; > n=champs.length; } } > if ( err ) > { alert("Sélectionnez un checkbox!"); > //formulaire.elements[n].style.backgroundColor="#DC143C"; > return false; } > } else { > if (formulaire.elements[n].checked == false) { > alert("Sélectionnez un checkbox!"); > return false; > } > }
> //write(formulaire.elements[n].value); > break;
|
|
mardi 26 juillet 2005 à 11:27:23 |
Re : Formulaire+checkbox

CHABRY
|
Merci steph666 pour ton aide mais j'ai enfin découvert le pb, les checkbox n'avaient pas le même nom.
|
|
mardi 26 juillet 2005 à 18:12:53 |
Re : Formulaire+checkbox

Steph666
|
Oui c pour ça que je t'ai posté une solution qui prévoit le cas où ils portent le même nom, et celui où ils ont des noms différents.  , j'aurais peut-être du préciser.
|
|
Cette discussion est classée dans : formulaire, champs, alert, value, elements
Répondre à ce message
Sujets en rapport avec ce message
Bug en javascript. [ par CHABRY ]
Bonjour, J'ai réussi à valider les différents champs de saisie de mon formulaire mais le pb c qu'en validant les checkbox, ça se plante au niveau du "
empècher l'envoi du formulaire si tout les champs ne sont pas remplis [ par cgillet ]
bonjour,j'ai crée un formulaire ( formule à la fin du message )j'ai rendu certain champs obligatoire mais je voudrais rendre l'envoi du dit formulaire
Javascript et référence objet. [ par CHABRY ]
Bonjour, J'ai commencé à écrire du code javascript visant la validation de n'importe quel formulaire d'1 même page HTML en parcourant les formulaires
boucle sur formulaire.champs.value [ par lucky82 ]
Bonjour tout le monde; Pour obtenir la valeur d'un champs texte nommé "chp1" on fait comme ça: formulaire.chp1.valuemais s'il y a dans mon formulair
If If Else... [ par plx4ever ]
Salut à tous !Alors voila mon petit probleme qui doit etre tres simple a resoudre pourtant...Mon code: function verif(formulaire) { if(formulaire.nom.
Verification de champs [ par tib411 ]
bonjour,Des petits problémes avec les verifications de formulaireVoila mon probléme :Pour l'instant j'arrive à verifier qu'un champ n'est pas videfunc
problème de vérification des champs d'un formulaire [ par arambasic ]
Voici mon formulaire avec le code javascript pour le vérifié, quand j'envoie le formulaire in me donne bien les box d'erreurs mais il enregistre les
sujet formulaire [ par limaseb ]
J'ai un probleme sur mon formulaire aimerais le faire apparaitre en email outlook mais en colonne et non en ligne avec entre les informations & ces po
enregistrer formulaire dans cookie [ par chabichowed ]
Bonjour,Le script ci dessous permet de memoriser dans un cookie les valeur d un formulaire. le truc c est qu il ne retient que les textfield.Je l ai e
formulaire avec cobo rechargeable [ par alexius ]
Bonjour à tous, je souhaite réaliser un formulaire avec des options de vote que je souhaite placer dans des combobox.Le formulaire comporte une quaran
Livres en rapport
|
Derniers Blogs
[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE?[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE? par JeremyJeanson
Avec la sortie de la RC de Visual Studio 2010, Microsoft a mis un peu les points sur leS i en ce qui concernait le passage d'arguments. Mais nous somme un certain nombre à avoir pris ce changement comme un coup dur. Pour résumer la situation : à la sortie...
Cliquez pour lire la suite de l'article par JeremyJeanson [RIA SERVICES] INCLUDE ET DOMAINDATASOURCE[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE par Audrey
Dans un de mes articles précédents , j'avais parlé des DomainDataSource avec RIA Services dans le cas d'une interface Maître - Détail. Dans le même principe, je vais parler d'une autre manière de mettre en forme ce cas d'interface avec RIA Services. Et po...
Cliquez pour lire la suite de l'article par Audrey ZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATIONZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATION par ROMELARD Fabrice
Une des nouveautés de la version V 3.0 était l'apparition de l'onglet Social qui ne fonctionnait que si le MarketPlace était activé sur son poste. Cela limitait donc son intérêt, car hors du cadre commercial USA-CANADA, peu de monde trouva...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PRATIQUE DE SILVERLIGHT PAR ERIC AMBROSIPRATIQUE DE SILVERLIGHT PAR ERIC AMBROSI par MPOWARE
Je viens de finir la lecture du dernier livre d'
Eric Ambrosi
éditions PEARSON
Son livre donne une approche pratique de Silverlight qui sera aussi bien comprise par le développeur que par le designeur.
Tous les aspects du développement RIA sont abor...
Cliquez pour lire la suite de l'article par MPOWARE APPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NETAPPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NET par odewit
2 déclinaisons de Silverlight et 2 déclinaisons de Mono permettent dorénavant (ou permettront prochainement) de développer des applications .NET mobiles pour les principales plates-formes du marché :
Silverlight pour Symbian, basé sur Silverlight 2...
Cliquez pour lire la suite de l'article par odewit
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|