Bonjour

je rencontre un probleme au niveau de mon script je n'arrive pas a recuperer les valeurs de mes checkbox (kit,pret et ms).
lorsque l'utilisateur coche l'une de ces cases la valeur est recupéré en fonction des la liste deroute (duree).
J'ai vraiment besoin de votre aide.

mon html

<form name="form1" id="Fm">

  <select name="Modeles" class="modele" size="1" onChange="cal()">
    <option value="29">Ordinateur portable 1er prix</option>
    <option value="34">Ordinateur portable standard</option>
    <option value="39">Ordinateur portable puissant/récent</option>
    <option value="60">Macbook pro (3ans)</option>
    <option value="16">PC fixe 1er prix avec écran 17 pouces</option>
    <option value="25">PC standart avec écran 19 pouces</option>
    <option value="29">PC fixe puissant/recent avec écran 19 pouces</o9ption>
  </select>
  <select name="Quantité" size="1" onChange="cal()">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value)"3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
    <option value="13">13</option>
    <option value="14">14</option>
    <option value="15">15</option>
    <option value="16">16</option>
    <option value="17">17</option>
    <option value="18">18</option>
    <option value="19">19</option>
    <option value="20">20</option>
    <option value="21">21</option>
    <option value="22">22</option>
    <option value="23">23</option>
    <option value="24">24</option>
    <option value="25">25</option>
    <option value="26">26</option>
    <option value="27">27</option>
    <option value="28">28</option>
    <option value="29">29</option>
    <option value="30">30</option>

  </select>

  <select name="Duree" class="duree" size="1" onChange="cal()">
    <option value="1">3 jours</option>
    <option value="1.2">1 semaine</option>
    <option value="1.5">1 mois</option>
    <option value="4.2">3 mois</option>
    <option value="6.75">6 mois</option>
    <option value="12">1 an</option>
  </select>

  <select name="Lieu" class="lieu"size="1" onChange="cal()">
    <option value="1">Grand Lyon</option>
    <option value="1.25">Moins 1h de courly</option>
    <option value="1.5">Plus 1h de courly</option>
    <option value="4">Etranger</option>form>
  </select>
  <input type="text" name="prix" />
  <input type="text" name="prix1" />
  <input type="text" name="prix2" />
  <input type="text" name="total" />
  <br /><br />

  <input type="checkbox" name="ms" value="2.5" onchange="cal()"/>
  <input type="hidden" name="ms" value="3.5" />
  <input type="hidden" name="ms" value="5" />
  <label name="Ms" class="micro">Intallation Microsoft office</label>

  <input type="checkbox" name="pret" value="1" onclick="cal()"/>
  <input type="hidden" name="pret" value="1.2" />
  <input type="hidden" name="pret" value="1.5" />
  <input type="hidden" name="pret" value="4.2" />
  <input type="hidden" name="pret" value="6.75" />
  <input type="hidden" name="pret" value="12" />
  <label class="pt">Pret vidéo projecteur</label>

  <input type="checkbox" name="kit" value="1.5" onclick="cal()"/>
  <input type="hidden" name="kit" value="2" />
  <input type="hidden" name="kit" value="3" />
  <label class="kt">Kit clavier/souris supplémentaire</label>

  <input type="checkbox" name="site" value="18" onclick="cal()"/>
  <label class="site">Sur site</label>
</form>

Mon script

function cal(){
    var Mo=document.form1.Modeles.value;
    var Qt=document.form1.Quantité.value;
    var Dr=document.form1.Duree.value;
    var Li=document.form1.Lieu.value;
    var Si=document.form1.site.value;
    var Kt=document.form1.kit].value;
    var Pt=document.form1.pret.value
    var a=0, b=16, c=20;
    document.form1.prix.value=(Mo* Number(Dr))*Qt;
    if (Mo==29 || Mo==34 || Mo==39 ||Mo==60) {document.form1.prix1.value=Li*b}
        else{document.form1.prix1.value=Li*c};
    if (document.form1.site.checked) {document.form1.prix2.value=Si}
        else{document.form1.prix2.value=a};
    if (document.form1.kit].checked && Dr==1 || Dr==1.2 || Dr=1.5 ||) {document.form1.prix2.value=si+Kt}
        else{document.form1.prix2.value=a};

    document.form1.total.value=parseInt(document.form1.prix.value) + parseInt(document.form1.prix1.value) + parseInt(document.form1.prix2.value);
}

1 réponse


Bonjour,

Tout d'abord si je peux me permettre, 2 petits détails:

  • je pense que c'est JavaScript et non du ActionScript c'est 2 choses différentes...
  • Il vaut mieux ne pas utiliser des caractères accentués pour le nom des champs (Exp: Quantité) ...

    <input type="checkbox" name="ms" value="2.5" onchange="cal()"/>
    <input type="hidden" name="ms" value="3.5" />
    <input type="hidden" name="ms" value="5" />
    <label name="Ms" class="micro">Intallation Microsoft office</label>

    <input type="checkbox" name="pret" value="1" onclick="cal()"/>
    <input type="hidden" name="pret" value="1.2" />
    <input type="hidden" name="pret" value="1.5" />
    <input type="hidden" name="pret" value="4.2" />
    <input type="hidden" name="pret" value="6.75" />
    <input type="hidden" name="pret" value="12" />
    <label class="pt">Pret vidéo projecteur</label>

    <input type="checkbox" name="kit" value="1.5" onclick="cal()"/>
    <input type="hidden" name="kit" value="2" />
    <input type="hidden" name="kit" value="3" />
    <label class="kt">Kit clavier/souris supplémentaire</label>

Votre structure HTML n'est pas clair, si vous mettez le même nom des champs, votre script ne saura pas quel valeur prendre, il prendra la dernière... là d'après ce que je vois, vous affichez un "checkbox" avec des "hidden" avec le même nom, qu'est ce que vous voulez faire exactement? peut être on vous aidera mieux ...

var Kt=document.form1.kit].value;

document.form1.kit] veut dire un tableau, vous ne pouvez pas récupérer la valeur d'un tableau avec ".value" il faut créer une boucle et récupérer toute la liste.

si je peux vous conseiller aussi d'utiliser jQuery c'est un très bon ami...