2010-03-01 12 views
1

Bon, je sais qu'il ya un moyen simple de faire cela, mais ça fait des années depuis que je l'ai fait beaucoup javascriptCalculer le prix de la commande par date valeur de sélection

Mon client a un formulaire de commande en ligne pour l'enregistrement des événements (développé par précédent web dev.). Actuellement, le total de la commande est juste un champ caché:

<INPUT value=78.00 type=hidden name=amount /> 

Mais j'ai besoin du total pour calculer en fonction de quelle date ils choisissent:

<SELECT style="BACKGROUND-COLOR: #ffff99" name=altDate1> 
<OPTION value=04/09> Friday, April 9 </OPTION> 
<OPTION value=04/14> Wednesday, April 14 </OPTION> 
<OPTION value=04/16> Friday, April 16 </OPTION> 
<OPTION value=04/19> Monday, April 19 </OPTION> 
<OPTION value=04/29> Thursday, April 29 </OPTION> 
</SELECT> 

Ceci est le javascript qui traite le formulaire:

<SCRIPT language=Javascript> 

function PaymentButtonClick() { 

    document.addform.Product_Name.value = document.Information.StudentLastName.value + ","+ 
              document.Information.StudentFirstName.value+","+ 
              document.Information.StudentID.value+","+ 
              document.Information.altDate1.name+","+","+ 
              document.Information.Guests.value+ "," + 
              document.Information.StudentType.value; 

    document.addform.Product_Code.value = document.Information.StudentID.value; 


    if ((document.Information.UCheck.checked==true) && 
     (document.Information.altDate1.value != "") && 
     (document.Information.altDate1.value != "x")) { 

     if (document.Information.StudentLastName.value != "" || 
      document.Information.StudentFirstName.value != "" || 
      document.Information.StudentID.value != "") { 

       document.addform.submit(); 
     } 
     else { 
      alert("Please enter missing information"); 
     } 
    } 
} 

</SCRIPT> 
+0

J'ai nettoyé votre code, mais ce que vous devez faire n'est pas clair pour moi. Avez-vous besoin de calculer un montant total basé sur les semaines sélectionnées? Est-ce un choix multiple? À quoi ressemble le reste du formulaire? –

+0

Désolé, il s'agit d'un champ de sélection/option. L'utilisateur sélectionne une date, entre ses coordonnées et procède au paiement. Une sorte d'enregistrement de conférence/événement similaire. Leur paiement se réserve une place à la date qu'ils choisissent, mais le coût varie en fonction de la date qu'ils choisissent. – miles

Répondre

0

Insérer cette déclaration switch dans votre fonction de traitement de formulaire:

switch (document.Information.altDate1.value) { 
    case '04/09': 
     document.Information.amount.value = 78.00; 
     break; 
    case '04/14': 
     document.Information.amount.value = 79.00; 
     break; 
    case '04/16': 
     document.Information.amount.value = 80.00; 
     break; 
    case '04/19': 
     document.Information.amount.value = 81.00; 
     break; 
    case '04/29': 
     document.Information.amount.value = 82.00; 
     break; 
} 
+0

Je reçois cette erreur lorsque je soumets le formulaire: Message: 'document.Information.amount' est nulle ou non un objet ligne: 193 Char: 9 code: 0 – miles

+0

étrange. Ce champ caché nommé "montant" ne se trouve-t-il pas dans le formulaire "Information"? –

+0

La date sélectionnez l'option est dans « Informations » La valeur d'entrée cachée était « AddForm » Il y a 2 formulaires sur la page, « Information » et « action AddForm = ...> J'ai essayé de changer les noms de formulaire dans l'instruction switch que vous m'avez donnée à addform, mais j'ai obtenu la même erreur avec document.addform.amount D'après ce dont je me souviens, vous n'avez jamais besoin de 2 formulaires sur une seule page, je blâme les problèmes sur le génie qui avait cette – miles