Cache cache de DIV sous conditions
Bonjour à tous ,
Me revoila pour de nouvelles aventures ....
En fait je creer un formulaire avec des div qui vont s'afficher ou non de maniere conditionnel.
1er condition : Si contrat.value =cdi
Donc afficher formcdi
sinon
Afficher formautre
Si les différence entre les date de formautre sont > 3 mois
Afficher form3mois
Sinon afficher form_moins_3mois
Voici le code du html :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
| <script src="_scripts/form.js"></script>
<script type="text/javascript" src="_scripts/formValidation.js"></script>
<link rel="stylesheet" type="text/css" href= "_scripts/formStyles.css">
<!------------Debut du formulaire principal------------->
<FORM name="adduser" id="adduser" method="post" action="mailto.php" onsubmit="return valider(this)">
<div id="titreForm">Creation</div>
<div id="corpForm">
<fieldset id="coordonnees">
<legend>Informations</legend>
<br/>
<p>
<label for="nom" title="Veuillez saisir le nom en lettres majuscules" class="oblig">* Nom :</label>
<input type="text" name="nom" id="nom" title="Veuillez saisir le nom en lettres majuscules" tabindex="1" onfocus="this.className='focus';" onblur="this.className='normal';" onchange="javascript:this.value=this.value.toUpperCase();" />
</p>
<p>
<label for="prenom" title="Veuillez saisir le prénom " class="oblig">* Prénom :</label>
<input type="text" name="prenom" id="prenom" title="Veuillez saisir le prénom" tabindex="2" onfocus="this.className='focus';" onblur="this.className='normal';" />
</p>
<p>
<label for="service" title="Veuillez saisir le numéro de service" class="oblig">* Service :</label>
<input type="text" name="service" id="service" title="Veuillez saisir le numéro de service" tabindex="3" onfocus="this.className='focus';" onblur="this.className='normal';" />
</p>
<p>
<label for="poste" title="Veuillez renseigner le type de poste"> Poste à pourvoir :</label>
<input type="poste" name="poste" id="poste" title="Veuillez informer le type de poste" tabindex="4" onfocus="this.className='focus';" onblur="this.className='normal';" />
</p>
<p>
<label for="commentaires" title="Indiquez vos commentaires ici">Commentaires : </label>
<textarea rows="3" name="commentaires" id="commentaires" title="Commentaires" tabindex="5" onfocus="this.className='focus';" onblur="this.className='normal';"></textarea>
</p>
<p>
<label for="contrat" title="Important: Séléctionnez correctement le type de contrat" class="oblig">* Contrat :</label>
<select id="contrat" name="contrat" title="Veuillez choisir le type de contrat" tabindex="6" onfocus="this.className='focus';" onblur="this.className='normal';" onchange="afficherFormulaire(this.value);">
<OPTION VALUE="choix">Choix</OPTION>
<OPTION VALUE="cdi">CDI</OPTION>
<OPTION VALUE="cdd">CDD</OPTION>
<OPTION VALUE="interim">Intérimaire</OPTION>
<OPTION VALUE="stage">Stage</OPTION>
</select>
</p>
<br/>
<em>Champs * obligatoires</em>
<br />
</fieldset>
<br /><br />
<!--Formualire d'option dans le cadre d'un CDI-->
<div id="formcdi">
Veuillez déterminer quel type de compte ouvrir dans les disponibilitées ci dessous :
<fieldset id="options">
<br>
<legend>Options</legend><br />
<p>
<label for="notes" title="Ouvrir un compte lotus Notes">Lotus Notes (+16 mensuel)</label>
<input type="checkbox" name="notes" id="notes" value="Lotus Notes" checked="checked" tabindex="7" />
<br />
<label for="internet" title="Compte d'accés à Internet">Internet</label>
<input type="checkbox" name="internet" id="internet" value="internet" tabindex="8" />
<br />
<label for="evodvs" title="EvoDvs rapatrier les pièces Mercedes .tif">EvoDvS</label>
<input type="checkbox" name="evodvs" id="evodvs" value="EvoDvs" checked="checked" tabindex="9" />
<br />
<label for="tdvs" title="T_Dvs rapatrier les pièces DaimlerChrysler .">TDvs (+8 mensuel)</label>
<input type="checkbox" name="tdvs" id="tdvs" value="T_Dvs" tabindex="10" />
<br />
<label for="sap" title="Compte SAP ">SAP (+40 mensuel)</label>
<input type="checkbox" name="sap" id="sap" value="SAP" checked="checked" tabindex="11" />
<br />
<label for="fdoklecture" title="Compte d'acces à F-DOCK en lecture seulement">F-Dok lecture</label>
<input type="checkbox" name="fdoklecture" id="fdoklecture" value="Fdok Lecture" tabindex="12" />
<br />
<label for="fdokmodif" title="Compte d'acces à F-DOCK en modification">F-Dok Modification</label>
<input type="checkbox" name="fdokmodif" id="fdokmodif" value="Fdok Modification" tabindex="13" />
<br />
<label for="epc" title="Ewanet EPC : Gestion des pièces de rechange">Ewanet EPC</label>
<input type="checkbox" name="epc" id="epc" value="Ewanet EPC" tabindex="14" />
<br />
<label for="wis" title="Ewanet WIS ">Ewanet WIS</label>
<input type="checkbox" name="wis" id="wis" value="Ewanet WIS" tabindex="15" />
<br />
<label for="novis" title="Novis : Configurateur (vendeurs)">Novis</label>
<input type="checkbox" name="novis" id="novis" value="Novis" tabindex="16" />
<br />
<label for="net" title="Services NET">Services Net</label>
<input type="checkbox" name="net" id="net" value="Service NET" tabindex="17" />
<br />
<label for="sitz" title="Implantation de sièges">Sitzeinteilung</label>
<input type="checkbox" name="sitz" id="sitz" value="Sitzeinteilung" tabindex="18" />
<br />
<br />
<label for="remplacement" >Remplacement :</label>
<input type="text" name="remplacement" id="remplacement" title="Veuillez indiquer si il sagit d'un remplacment" tabindex="19" onfocus="this.className='focus';" onblur="this.className='normal';" />
</p>
<br/>
</fieldset>
<br/>
<INPUT type="submit" value="Envoyer">
<br/>
</div>
<!--Fin de formulaire options pour les CDI-->
<!--Formulaire autre que CDI--->
<div id="formautre">
<fieldset id="Dates">
<legend>Dates</legend>
<br/>
<p>
<label for="datein" class="oblig">* Date début de contrat :</label>
<input type='text' value="15/12/2007" size="10" name='datein' id='datein' title="Precisez la date de début de contrat" tabindex="20" onfocus="this.className='focus';" onblur="this.className='normal';">
<span class="legende">ex : 14/09/2007</span>
</p>
<br/>
<p>
<label for="dateout" class="oblig">* Date de fin de contrat :</label>
<input type='text' value="" size="10" name='dateout' id='dateout' title="Precisez la date de fin de contrat" tabindex="21" onfocus="this.className='focus';" onblur="this.className='normal';">
<span class="legende">ex : 31/12/2007</span>
</p>
</fieldset>
<br/>
</div>
<!--Fin de formulaire 'options' autre que pour les CDI-->
<!--Formulaire options pour les CDD de plus de 3 mois-->
<div id="form3mois">
<fieldset id="options">
<legend>Options</legend>
<br/>
<p>
<label for="notes" title="Ouvrir un compte lotus Notes">Lotus Notes (+16 mensuel)</label>
<input type="checkbox" name="notes" id="notes" value="Lotus Notes" checked="checked" tabindex="22" />
<br />
<label for="sap" title="Compte SAP ">SAP (+40 mensuel)</label>
<input type="checkbox" name="sap" id="sap" value="SAP" tabindex="23" />
<br />
<label for="evodvs" title="EvoDvs rapatrier les pièces Mercedes .tif">EvoDvS</label>
<input type="checkbox" name="evodvs" id="evodvs" value="EvoDvs" tabindex="24" />
<br />
</p>
</fieldset>
<br/>
<INPUT type="submit" value="Envoyer">
</div>
<!--Fin des option des CDD de plus de trois mois-->
<!--Formulaire options pour les CDD de plus de 3 mois-->
<div id="form_moins_3mois">
<fieldset id="options">
<legend>Options</legend>
<br/>
<p>
L'utilisateur se verra attribuer un compte générique de type EEVO_062_XXXX.
</p>
</fieldset>
<br/>
<INPUT type="submit" value="Envoyer">
</div>
<!--Fin des option des CDD de moins de trois mois-->
<!--Mauvais choix dans contrat donc affiche un div erreur-->
<div id="formchoix">
<fieldset id="erreur">
<legend>Erreur</legend>
<br>Veuillez selectionner un choix dans la liste déroulante nommée <b><u>* Contrat :</u></b>
</fieldset>
</div>
<!--Fin de DIV principal COPRFORM--->
</div>
<!--Pied du formulaire-->
<div id="piedForm"></div>
<!--Fin de formulaire principal --->
</Form> |
Le code du JS :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| //Fonction CalculDate qui calcul la différence entre la date de début et la date de fin de contrat
function calculDate(){
var datein = document.getElementById('datein').value;
var dateout= document.getElementById('dateout').value;
var sec = 24*3600*1000;
var troismois = 91.25;
//Datein
var j_datein=(datein.substring(0,2));
var m_datein=(datein.substring(3,5));
var m_datein = m_datein -1;
var a_datein=(datein.substring(6));
//Dateout
var j_dateout=(dateout.substring(0,2));
var m_dateout=(dateout.substring(3,5));
var m_dateout = m_dateout -1;
var a_dateout=(dateout.substring(6));
var Ma_datein = new Date(a_datein,m_datein,j_datein);
var Ma_dateout =new Date(a_dateout,m_dateout,j_dateout);
var diff_date =(Math.abs((Ma_datein.getTime()-Ma_dateout.getTime())/sec));
if(diff_date < troismois){
document.getElementById('from_moins_3mois').style.display="block";
document.getElementById('from3mois').style.display="none";
}else{
document.getElementById('from3mois').style.display="block";
document.getElementById('from_moins_3mois').style.display="none";
}
}
/*-----------------------------------------------------------------------------------------*/
//affiche ou non les différentes balsies
function afficherFormulaire(value){
//Si contrat est vide
if(value ==""){
document.getElementById('formcdi').style.display="none";
document.getElementById('formchoix').style.display="none";
document.getElementById('formautre').style.display="none";
document.getElementById('form3mois').style.display="none";
document.getElementById('from_moins_3mois').style.display="none";
//Si contrat est choix
}else if (value == "choix"){
document.getElementById('formcdi').style.display="none";
document.getElementById('formchoix').style.display="block";
document.getElementById('formautre').style.display="none";
document.getElementById('form3mois').style.display="none";
document.getElementById('from_moins_3mois').style.display="none";
//Si contrat est CDI
}else if(value == "cdi"){
document.getElementById('formcdi').style.display="block";
document.getElementById('formchoix').style.display="none";
document.getElementById('formautre').style.display="none";
document.getElementById('form3mois').style.display="none";
document.getElementById('from_moins_3mois').style.display="none";
//Si contrat et CDD interminaire ou stages
}else{
document.getElementById('formcdi').style.display="none";
document.getElementById('formchoix').style.display="none";
document.getElementById('formautre').style.display="block";
calculDate();
}
} |
Et le css
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
| /*** Mise en forme générale de la page ***/
p#footer {
border-top: 1px dotted black;
padding-top: 1em;
}
/*** Mise en forme du formulaire ***/
#adduser {
border: none;
margin: 0;
padding: 0;
width: 40em; /*** Largeur du formulaire ***/
text-align :center;
}
#titreForm, #piedForm { /*** Mise en forme du titre et du pied de formulaire ***/
font: bold 1.1em arial, hevetica, sans-serif;
color: white;
background: black;
margin: 0;
padding: .5em;
}
#piedForm {
text-align: right; /*** Les boutons sont alignés à droite ***/
}
#piedForm input {
font-weight: bold; /*** Pour améliorer la lisibilité des boutons ***/
margin-left: 1em;
}
#corpForm { /*** Mise en fome du corp du formulaire (bordure, couleur du fond...) ***/
border: 1px solid black;
color: black;
background: #ffffff;
margin: 0;
padding: 1em;
}
#corpForm fieldset { /*** Mise en forme des cadres ***/
margin: 0;
font-style: normal;
padding: 0 1em 1em;
}
#corpForm legend { /*** Mise en forme des titres des cadres ***/
font-weight: bold;
color: black;
background: transparent;
}
#corpForm p { /*** Mise en forme des lignes du formulaire ***/
padding: .2em 0;
margin: 0 0 .2em 0;
}
#corpForm fieldset#coordonnees label { /*** Mise en forme des intitulés de champs ***/
float: left;
width: 30%; /*** Les intitulés prennent 1/3 de la largeur totale du formulaire... ***/
text-align: right; /*** alignés à droite***/
margin: 0;
padding: 0 .5em 0 0;
line-height: 1.8; /***centrés verticalement ***/
}
#formcdi#options label { /*** Mise en forme des intitulés de champs ***/
float: left;
width: 60%; /*** Les intitulés prennent 1/3 de la largeur totale du formulaire... ***/
text-align: left; /*** alignés à droite***/
margin: 0;
padding: 0 .5em 0 0;
line-height: 1.8; /***centrés verticalement ***/
}
#formautre#options label { /*** Mise en forme des intitulés de champs ***/
float: left;
width: 60%; /*** Les intitulés prennent 1/3 de la largeur totale du formulaire... ***/
text-align: left; /*** alignés à droite***/
margin: 0;
padding: 0 .5em 0 0;
line-height: 1.8; /***centrés verticalement ***/
}
#form3mois#options label { /*** Mise en forme des intitulés de champs ***/
float: left;
width: 60%; /*** Les intitulés prennent 1/3 de la largeur totale du formulaire... ***/
text-align: left; /*** alignés à droite***/
margin: 0;
padding: 0 .5em 0 0;
line-height: 1.8; /***centrés verticalement ***/
}
#corpForm label:hover, #piedForm input {
cursor: pointer; /*** apprendre aux utilisateurs à cliquer sur les intitulés ***/
}
#corpForm label.oblig {
font-weight: bold; /*** Mise en évidence des champs obligatoires ***/
}
#corpForm .legende { /*** Mise en forme des aides contextuelles ***/
font-style: italic;
color: #666;
background: transparent;
margin: 0;
padding: 0;
}
#corpForm .focus { /*** Mise en avant des champs en cours d'utilisation ***/
background: beige;
color: black;
}
#corpForm .normal { /*** Retour à l'état normal après l'utilisation ***/
background: white;
color: black;
}
/*** Mise en forme des div cachés ***/
#formcdi {
display : none ;
}
#formchoix {
display : none ;
}
#formautre {
display : none ;
}
#form3mois{
display : none ;
}
#form_moins_3mois {
display : none ;
} |
Problemes :
1.lorsque je selectionne un contrat il me retourne une erreur de type objet requis
2.Il ne m'affiche pas les div form3mois et form_moins_3mois
En esperent que mon code ne soit pas trop fastidieux a comprendre je vous remercie pour l'aide .