verifier le contenu des champs masqué/affichés selon le choix de la ca

verifier le contenu des champs masqué/affichés selon le choix de la ca - Javascript/Node.js - Programmation

Marsh Posté le 07-10-2016 à 09:19:03    

Bonjour à tous !
Je suis à la recherche de l’aide au niveau de mon code JavaScript.
Le problème est au niveau de ma fonction "verif_formulaire", cette fonction a pour rôle de vérifier si le visiteur a rempli les champs obligatoires masqués qui s'affichent ou non masque. Puisque le visiteur choisi la catégorie dans le List box et les champs correspondants à cette catégorie s'affichent y compris des champs obligatoires et non obligatoires. En cliquant sur le bouton envoyer sans remplir ces champs le message d'alerte s'affiche pour informer le visiteur que les champs obligatoire ne sont pas remplis. Ainsi, dans la pratique ça marche bien avec la catégorie "offre d'emploi" qui est le premier, mais avec la catégorie "voiture" qui est le second, la fonction ne vérifie pas la saisie de tous les champs obligatoires et elle déclenche l'envoie du formulaire à la page de traitement. c'est ça mon soucis . pour tester cela, il suffit d'utiliser le code suivant: :o  
 
 

Code :
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Deposez une annonce</title>
  6. </head>
  7. <body>
  8. <form id="form4" name="form4" method="post" action="annonce/new-sujet-poster.php" enctype="multipart/form-data" onSubmit="return verif_formulaire()">  
  9. <div>
  10. <label for="categorie"><strong >Categorie * :</strong ></label>
  11. <div>
  12. <select id="categorie" name="categorie" style="width:200px;" onChange="afficherAutre()">
  13. <option value='0' selected>-&#45;Choississez-&#45;</option>  
  14. <option style='background-color:#f2f2f2' disabled id='cat71' >-&#45; EMPLOI -&#45;</option>
  15. <option value='1' id='cat33'>Offres d'emploi</option>
  16. <option style='background-color:#f2f2f2' disabled id='cat1' >-&#45; VEHICULES -&#45;</option>
  17. <option value='2' id='cat2' >Voitures</option>
  18. <option value='3' id='cat3' >Motos</option>
  19. <option value='4' id='cat38' >Autres</option>
  20. </select>
  21. </div>
  22. </div>
  23. <div>
  24. <label><strong >Vous êtez * :</strong ></label>
  25. <label class="radio inline">
  26. <input id="company" name="company" value="Particulier" type="radio" >Particulier
  27. </label>
  28. <label class="radio inline">
  29. <input id="company" name="company" value="Professionnel" type="radio">Professionnel
  30. </label>
  31. </div>
  32. <div>
  33. <label for="objet"><strong >Type d'annonce* :</strong></label>
  34. <div>
  35. <select id="type_annonce" name="type_annonce">
  36. <option value="">-&#45;Choississez-&#45;</option>
  37. <option value=1>Offres</option>  
  38. <option value=2>Demandes</option>
  39. <option value=3>Location</option>  
  40. </select>
  41. </div>
  42. </div>
  43. <div>
  44. <label id="sujet_for" style="display:block;" for="sujet_for"><strong >Titre de l"annonce * :</strong></label>
  45. <label id="sujet_for_offre_demploi" style="display:none;" for="sujet_for_offre_demploi"><strong >Intitulé du poste * :</strong></label>
  46. <div >
  47. <input type="text" id="sujet" name="sujet" value="" maxlength="100" autocomplete="off" class="" >
  48. </div>
  49. </div>
  50. <div>
  51. <label id="message" style="display:block;" for="message"><strong >Texte de l'annonce * :</strong></label>
  52. <label id="message_offre_demploi" style="display:none;" class="control-label" for="message_offre_demploi"><strong >Description du poste * :</strong></label>
  53. <div>
  54. <textarea id="message" name="message" rows="7" cols="60"></textarea>
  55. </div>
  56. </div>
  57. <!-- groupe 2-->  
  58. <div id="groupe2" style="display:none;">
  59. <div style="background-color:#f9f9f9;">
  60. <div>
  61. <div>
  62. <label id="marque_for" for="marque"><strong >Marque </strong></label>
  63. <select name="marque" id="marque" >
  64. <option value="" selected>&#171;Choisissez&#187;</option>
  65. <optgroup label="Marques Courantes">  
  66. <option value="Audi" >Audi </option>
  67. <option value="Bmw" >Bmw </option>
  68. <option value="Volkswagen" >Volkswagen </option>  
  69. </optgroup>
  70. <optgroup label="Autres Marques">
  71. <option value="Mastretta" > Mastretta </option>
  72. <option value="Maybach" > Maybach </option>
  73. </optgroup>
  74. </select>
  75. </div>
  76. <div>
  77. <label for="model_year" ><strong >Année Modèle </strong></label>
  78. <div>
  79. <select name="model_year" id="model_year" >
  80. <option value="" selected>&#171;Choisissez&#187;</option>
  81. <option value="2014">2014</option>
  82. <option value="2015">2015</option>
  83. <option value="2016">2016</option>
  84. </select>
  85. </div></div>
  86. </div>
  87. <div>
  88. <div>
  89. <label for="carburant"><strong >Carburant *</strong></label>
  90. <div >
  91. <select name="carburant" id="carburant" >
  92. <option value="" selected>&#171;Choisissez&#187;</option>
  93. <option value="Essence" >Essence</option>
  94. <option value="Diesel" >Diesel</option>
  95. <option value="GPL" >GPL</option>
  96. <option value="Electrique" >Electrique</option>
  97. <option value="Autre" >Autre</option>
  98. </select>
  99. </div></div>  
  100. <div>
  101. <label id="model_for" for="modele"><strong >Modèle *</strong></label>
  102. <div class="controls">
  103. <input name="model" id="model" type="text" value="">
  104. </div></div>
  105. </div>
  106. <div>
  107. <div>
  108. <label for="boite_vitesse"><strong >Boite de vitesse *</strong></label>
  109. <div >
  110. <select name="boite_vitesse" id="boite_vitesse">
  111. <option value="" selected>&#171;Choisissez&#187;</option>
  112. <option value="manuelle" >Manuelle</option>
  113. <option value="automatique" >Automatique</option>
  114. </select>
  115. </div></div>
  116. <div >
  117. <label for="kilometrage"><strong ><strong>Kilometrage: km *</strong></label>
  118. <div class="controls">
  119. <input name="kilometrage" id="kilometrage" type="text" value="">
  120. </div>
  121. </div>
  122. </div>
  123. </div><!--fin div style categ-->
  124. <!--fin roupe--> </div>
  125. <!-- groupe33-->
  126. <div id="groupe33" style="display:none">
  127. <div style="background-color:#f9f9f9;">
  128. <div>
  129. <div>
  130. <label for="Type_de_contrat"><strong >Type de contrat *</strong></label>
  131. <div >
  132. <select name="Type_de_contrat" id="Type_de_contrat">  
  133. <option value="0" selected>&#171;Choisissez&#187;</option>  
  134. <option value="1" >CDD</option><option value="2" >CDI</option><option value="3" >Int&eacute;rim</option><option value="4" >Ind&eacute;pendant/Franchise</option><option value="6" >Apprentissage</option><option value="5" >Stage/Alternance</option>  
  135. </select>
  136. </div></div>
  137. <div>
  138. <label><strong >Travail à :</strong ></label>
  139. <label >
  140. <input type="radio" name="jobtime" value="1" checked="checked"><span class="">Temps plein</span>
  141. </label>
  142. <label >
  143. <input type="radio" name="jobtime" value="2" ><span class="">Temps partiel</span>
  144. </label>
  145. </div>
  146. <div >
  147. <label ><strong >Vous souhaitez recevoir les candidatures via :</strong ></label>
  148. <label >
  149. <input type="radio" name="adreply_type" value="1" checked="checked">  
  150. <span class="text mrl">Votre email</span>
  151. </label>
  152. <label >
  153. <input type="radio" name="adreply_type" value="2" >  
  154. <span class="text">Votre site web</span>
  155. </label>
  156. </div>
  157. </div>
  158. <div>
  159. <div >
  160. <label for="Secteur_d_activite"><strong >Secteur d'activité </strong></label>
  161. <div >
  162. <select name="jobfield" id="jobfield" >  
  163. <option value="0" selected>&#171;Choisissez&#187;</option>  
  164. <option value="1" >Agriculture</option><option value="4" >Banque/Assurance/Finance</option><option value="2" >BTP/Construction</option><option value="3" >Commerce/Distribution</option><option value="13" >H&ocirc;tellerie/Restauration</option><option value="6" >Immobilier</option><option value="5" >Industrie/Environnement</option><option value="8" >M&eacute;decine/Sant&eacute;</option><option value="9" >Services</option><option value="7" >Services publics/Administrations</option><option value="15" >Sport</option><option value="10" >T&eacute;l&eacute;com/Internet/M&eacute;dias</option><option value="14" >Textile/Mode/Luxe</option><option value="11" >Tourisme</option><option value="12" >Transport/Logistique</option>  
  165. </select>
  166. </div></div>
  167. <div >
  168. <label for="Fonction"><strong >Fonction </strong></label>
  169. <div>
  170. <select name="jobduty" id="jobduty" class="select">  
  171. <option value="0" selected>&#171;Choisissez&#187;</option>  
  172. <option value="1" >Administration/Services g&eacute;n&eacute;raux</option><option value="2" >Commercial/Vente</option><option value="3" >Comptabilit&eacute;/Gestion/Finance</option><option value="4" >Conseil/Audit</option><option value="5" >Direction G&eacute;n&eacute;rale</option><option value="16" >Etudes/Recherches/Ing&eacute;nieries</option><option value="15" >Formation/Education</option><option value="7" >H&ocirc;tellerie/Restauration</option><option value="8" >Informatique/Internet</option><option value="9" >Juridique</option><option value="10" >Logistique/Achat/Transport</option><option value="11" >Marketing/Communication</option><option value="18" >M&eacute;decine/Sant&eacute;</option><option value="12" >M&eacute;nage/Entretien</option><option value="17" >Ouvrier/Artisan</option><option value="19" >Production/Op&eacute;rations</option><option value="13" >Ressources Humaines/Formation</option><option value="6" >S&eacute;curit&eacute;/D&eacute;fense/Gardiennage</option><option value="14" >Services &agrave; la personne</option><option value="20" >Service Client/Accueil</option>  
  173. </select>
  174. </div></div>
  175. <div>
  176. <label for="experience"><strong >Expérience * </strong></label>
  177. <div>
  178. <select name="jobexp" id="jobexp">  
  179. <option value="0" selected>&#171;Choisissez&#187;</option>  
  180. <option value="1" >0 &agrave; 2 ans</option><option value="3" >2 &agrave; 5 ans</option><option value="5" >5 ans et plus</option>  
  181. </select>
  182. </div></div>
  183. </div>
  184. <div>
  185. <div>
  186. <label for="jobstudy"><strong >Niveau d'études *</strong></label>
  187. <div>
  188. <select name="jobstudy" id="jobstudy" class="select">  
  189. <option value="0" selected>&#171;Choisissez&#187;</option>  
  190. <option value="1" >Sans dipl&ocirc;me</option><option value="2" >BEPC/BET</option><option value="3" >Employ&eacute;/Ouvrier sp&eacute;cialis&eacute;/Bac</option><option value="4" >Technicien/Employ&eacute;/Bac+2</option><option value="5" >Agent de ma&icirc;trise/Bac+3</option><option value="6" >Ing&eacute;nieur/Cadre/Bac+5 ou plus</option>  
  191. </select>
  192. </div>
  193. </div>
  194. <div>
  195. <label class="control-label" for="adreply_redirect"><strong >Lien de redirection vers votre offre d'emploi (site recruteur) *</strong></label>
  196. <div class="controls">
  197. <input type="text" id="adreply_redirect" name="adreply_redirect" value="" class="nude">
  198. </div>
  199. </div>
  200. </div>
  201. </div><!--fin div style categ-->
  202. </div><!--fin groupe 33-->
  203. <div style="background:#f2f2f2;">
  204. <h3 style="padding-left: 1rem;color:#0088cc;font-size: 16px;">Vos informations</h3>
  205. </div><!--fin div style categ-->
  206. <div >
  207. <label for="prenom"><strong >Votre prénom * :</strong></label>
  208. <div>
  209. <input type="text" id="prenom" name="prenom" value="" autocomplete="off" class="" >
  210. </div>
  211. </div>
  212. </div>
  213. </div>
  214. </div>
  215. <div >
  216. <p class="text-right"><strong>Champs obligatoires *</strong></p>
  217. <hr>
  218. <div>
  219. <label for="valider">Valider</label>
  220. <input type="submit" name="envoye" value="Valider">
  221. <input type="reset" value="Initialiser">
  222. </div>
  223. </form>
  224. [code=js]
  225. <script>
  226. // script champ hidden  
  227. function afficherAutre() {
  228. var so = document.getElementById("sujet_for_offre_demploi" );
  229. var s = document.getElementById("sujet_for" );
  230. var m = document.getElementById("message" );
  231. var mo = document.getElementById("message_offre_demploi" );
  232. var gp2 = document.getElementById("groupe2" );
  233. var gp33 = document.getElementById("groupe33" );
  234. // cat1  
  235. if (document.form4.categorie.value == 1)
  236. {
  237. if (so.style.display == "none" )
  238. {so.style.display = "block";}
  239. if (s.style.display == "block" )
  240. {s.style.display = "none";}
  241. if (m.style.display == "block" )
  242. {m.style.display = "none";}
  243. if (mo.style.display == "none" )
  244. {mo.style.display = "block";}
  245. if (gp33.style.display == "none" )
  246. {gp33.style.display = "block";}
  247. }
  248. else
  249. {
  250. so.style.display = "none";
  251. s.style.display = "block";
  252. m.style.display = "block";
  253. mo.style.display = "none";
  254. gp33.style.display = "none";
  255. }
  256. // gp2  
  257. if (document.form4.categorie.value == 2)
  258. {
  259. if (gp2.style.display == "none" )
  260. {gp2.style.display = "block";}
  261. }
  262. else
  263. {
  264. gp2.style.display = "none";
  265. }
  266. }
  267. function verif_formulaire()
  268. {
  269. var gp2 = document.getElementById("groupe2" );
  270. var gp33 = document.getElementById("groupe33" )
  271. if(document.form4.categorie.value == "0" ) {
  272. alert("votre categorie ?" );
  273. document.form4.categorie.focus();
  274. return false;
  275. }
  276. if(document.form4.company.value == "" ) {
  277. alert("veuillez cocher la qualification" );
  278. document.getElementById("company" ).focus();
  279. return false;
  280. }
  281. if(document.form4.type_annonce.value == "" ) {
  282. alert("Votre type d'nnonce ?" );
  283. document.form4.type_annonce.focus();
  284. return false;
  285. }
  286. if(document.form4.sujet.value == "" ) {
  287. alert("Sujet de votre annonce ?" );
  288. document.form4.sujet.focus();
  289. return false;
  290. }
  291. if(document.form4.message.value == "" ) {
  292. alert("Votre message ?" );
  293. document.form4.message.focus();
  294. return false;
  295. }
  296. if(document.form4.prenom.value == "" ) {
  297. alert("Votre prenom ?" );
  298. document.form4.prenom.focus();
  299. return false;
  300. }
  301. // Champs Masqués/Affichés
  302. //gp33
  303. if(document.form4.Type_de_contrat.value == "0" ) {
  304. if (gp33.style.display == "block" ){
  305. alert("Veuillez indiquer le type de contrat." );
  306. document.form4.Type_de_contrat.focus();
  307. return false;
  308. }
  309. }
  310. if(document.form4.jobexp.value == "0" ) {
  311. if (gp33.style.display == "block" ){
  312. alert("Veuillez choisir un type." );
  313. document.form4.jobexp.focus();
  314. return false;
  315. }
  316. }
  317. if(document.form4.adreply_redirect.value == "" ) {
  318. if (gp33.style.display == "block" ){
  319. alert("Veuillez indiquer l'adresse de redirection." );
  320. document.form4.adreply_redirect.focus();
  321. return false;
  322. }
  323. }
  324. if(document.form4.jobstudy.value == "0" ) {
  325. if (gp33.style.display == "block" ){
  326. alert("Veuillez selectionner le niveau d'étude." );
  327. document.form4.jobstudy.focus();
  328. return false;
  329. }
  330. }
  331. // Champs masqués/ affichés
  332. // gp2
  333. if(document.form4.model.value == "" ) {
  334. if (gp2.style.display == "block" ){
  335. alert("Veuillez indiquer le modèle." );
  336. document.form4.model.focus();
  337. return false;
  338. }
  339. }
  340. if(document.form4.boite_vitesse.value == "" ) {
  341. if (gp2.style.display == "block" ){
  342. alert("Veuillez selectionner la boite de vitesse." );
  343. document.form4.boite_vitesse.focus();
  344. return false;
  345. }
  346. }
  347. if(document.form4.km.value == "" ) {
  348. if (gp2.style.display == "block" ){
  349. alert("Veuillez indiquer le kilometrage." );
  350. document.form4.km.focus();
  351. return false;
  352. }
  353. }
  354. if(document.form4.carburant.value == "" ) {
  355. if (gp2.style.display == "block" ){
  356. alert("Veuillez selectionner le carburant." );
  357. document.form4.carburant.focus();
  358. return false;
  359. }
  360. }
  361. }
  362. </script>


</body>
</html>
 
[/code]

Reply

Marsh Posté le 07-10-2016 à 09:19:03   

Reply

Marsh Posté le 07-10-2016 à 13:29:07    

Bonjour,
 
Un exemple précis? Car en effet chez moi ça fonctionne avec :
 
Catégorie : voiture
Vous êtes : particulier
type annonce : offre
Titre de l'annonce : aaa
Texte de l'annonce : aaa
Carburant : diesel
Modèle :
Boîte de vitesse : manuelle
Kilométrage km : aaa
Votre prénom : aaa


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 07-10-2016 à 15:08:53    

Merci de la réponse !
Vous devez tester les champs obligatoires affichés non rempli par le visiteur tout en validant le formulaire. Vous allez remarquer qu’à la catégorie "voiture", la fonction JS ne vérifie pas si tous les champs obligatoires sont remplis. Au contraire, l'envoie du formulaire s'en suit après vérification de 3/4 champs obligatoires. C’est ça mon souci. Le projet est bloqué depuis plusieurs jours.

Reply

Marsh Posté le 07-10-2016 à 15:49:19    

C'est bien ce que fais mon exemple? Le champ "modèle" n'est pas rempli, j'ai un avertissement et le formulaire n'est pas transmis. J'ai essayé avec d'autres champs obligatoires et même résultat.
 
D'où : pouvez-vous donner un exemple précis?


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 07-10-2016 à 15:59:50    

Code :
  1. document.form4.km.value


 
La console dit que l'objet "km" n'existe pas et bizarrement elle a raison, il fallait mettre l'objet "kilometrage".
Pour le carburant vous mettez :
 

Code :
  1. document.form4.carburant.value == ""


 
Cette condition n'est jamais vraie puisqu'il s'agit d'une sélection...
 
 
Bref vérifiez méticuleusement ce que vous avez fait.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 07-10-2016 à 17:47:14    

Merci MaybeEijOrNot !
C’est exactement ça, ça marche !
Comment  avez-vous procéder pour trouver l'erreur ?car, là j'ai rien appris ?
Il a fallu que je vienne chez vous pour trouver la solution.
 
Vraiment merci !
Le projet avance d'un pas géant. Et je vais vérifier sur votre profile s'il y'a un numéro de téléphone et je vais vous appeler.
Vraiment merci, merci et je déclare que le sujet est clos

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed