IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Problème formulaire (3 champs)


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Par défaut Problème formulaire (3 champs)
    Bonjour, j'ai trouvé un petit script pour calculer automatiquement des champs dans un formulaire, cependant mes deux derniers champs ne se calculent pas. J'ai vérifier le script, mais je n'ai rien trouvé d'anormal.

    Les 3 derniers champs ne fonctionnent pas. Lorsque je, mais la variable 1 aux frais d'envoie, cela l'écrit dans le champ 12x18. Les 2 derniers, fonctionne pas du tout

    pouvez-vous m'aider s.v.p.?



    Je vous donne mon script :

    <HTML>
    <HEAD>
    <TITLE>Estimateur</TITLE>

    <!-- J.-D. Bonjour / SI-DGR / 26.6.99 -->

    <SCRIPT LANGUAGE="JavaScript">
    <!--

    function test_champ(champ) {
    expr_reg = /^\d*$/ ;
    // Ci-dessus : expression régulière qui match 0,1 ou plusieurs chiffres ;
    // de cette façon on vérifie que l'utilisateur entre bien un nombre entier
    if ( expr_reg.test(champ.value) ) {
    // c'est bien un nombre entier
    calcul_form() ;
    } else {
    // ce n'est pas un nombre entier
    alert ("Ce n'est par un nombre entier !") ;
    document.form1.elements[champ.name].value = "" ; // on efface la valeur entrée erronée
    calcul_form() ;
    }
    }

    function calcul_form() {
    // le with ci-dessous permet d'abréger "document.forms.form1.p1.value" en "p1.value"
    with (document.forms.form1) {
    p1.value = q1.value * pu1.value ;
    p2.value = q2.value * pu2.value ;
    p3.value = q3.value * pu3.value ;
    p4.value = q4.value * pu4.value ;
    p5.value = q5.value * pu5.value ;
    p5.value = q6.value * pu6.value ;
    p5.value = q7.value * pu7.value ;
    total.value = p1.value *1 + p2.value *1 + p3.value *1 + p4.value *1 + p5.value *1 + p6.value *1 + p7.value *1 ;
    // Ai mis les *1 ci-dessus afin que les + fassent une somme arithmétique
    // et non pas une concaténation de chaînes de caractères
    }
    }

    function champ_verrouille(champ,valeur) {
    // Remarque : en HTML 4.0, il existe un attribut "read-only" pour la
    // balise <INPUT TYPE=text> qui interdira de modifier un champ
    // mais ce que je fais ci-dessous est beaucoup plus sûr !!!
    // alert ("Ce champ de peut pas être modifié !") ;
    document.form1.elements[champ.name].value = valeur ; // on remet "valeur" initiale dans champ
    }

    function soumettre_form() {
    if ( document.forms.form1.total.value == 0 ) {
    alert ("Vous n'avez rien commandé !\n => commande non soumise") ;
    return false ;
    } else {
    // Les 2 lignes ci-dessous devraient être activées pour réellement passer le form. à script CGI
    // document.form1.method = "POST" ;
    // document.form1.action = "http://dgrwww.epfl.ch/cgi-bin/uncgi/mail_form.sh?mailto=Jean-Daniel.Bonjour@epfl.ch" ;
    document.write ("<H3 ALIGN=center>Commande passée\n pour un montant de " +
    document.forms.form1.total.value + " Frs</H3>") ;
    document.close () ;
    return true ;
    }
    }

    // -->
    </SCRIPT>

    <style type="text/css">
    <!--
    .Style1 {color: #FF0000}
    .Style3 {color: #FFFFFF}
    .Style4 {color: #000000; }
    -->
    </style>
    <NOSCRIPT>
    <B>Votre browser ne supporte pas JavaScript et ne peut par conséquent pas exploiter
    les fonctionnalités de cette page Web</B>
    </NOSCRIPT>

    </HEAD>

    <BODY BGCOLOR="white" onLoad="calcul_form()" CLASS="page">

    <H3 ALIGN=center>Test</H3>
    <HR><P>

    <FORM NAME="form1">
    <CENTER>

    <TABLE width="35%" BORDER="1" CELLSPACING="0" BGCOLOR="#000066">
    <TR BGCOLOR="#CCCCCC">
    <TH WIDTH=19% class="Style4">Quantité
    <TD WIDTH=49% class="Style1"><span class="Style4"><B>Article</B>
    </span>
    <TH WIDTH=17% class="Style4">Prix unitaire
    <TH WIDTH=15% class="Style4">Prix
    <TR>
    <TH><INPUT TYPE="text" NAME="q1" SIZE=3 MAXLENGTH=3 onBlur="test_champ(this)">
    <TD><span class="Style3">Photos 4x6 </span>
    <TH><INPUT TYPE="text" NAME="pu1" VALUE="0.32" SIZE=5 onChange="champ_verrouille(this,0.32)">
    <TH><INPUT TYPE="text" NAME="p1" SIZE=8>
    <TR>
    <TH><INPUT TYPE="text" NAME="q2" SIZE=3 MAXLENGTH=3 onBlur="test_champ(this)">
    <TD><span class="Style3">Photos 5x7
    </span>
    <TH><INPUT TYPE="text" NAME="pu2" VALUE="0.80" SIZE=5 onChange="champ_verrouille(this,0.80)">
    <TH><INPUT TYPE="text" NAME="p2" SIZE=8>
    <TR>
    <TH><INPUT TYPE="text" NAME="q3" SIZE=3 MAXLENGTH=3 onBlur="test_champ(this)">
    <TD><span class="Style3">Photos 8x12</span>
    <TH><INPUT TYPE="text" NAME="pu3" VALUE="2.60" SIZE=5 onChange="champ_verrouille(this,2.60)">
    <TH><INPUT TYPE="text" NAME="p3" SIZE=8>
    <TR>
    <TH><INPUT TYPE="text" NAME="q4" SIZE=3 MAXLENGTH=3 onBlur="test_champ(this)">
    <TD><span class="Style3">Photos 11x16
    </span>
    <TH><INPUT TYPE="text" NAME="pu4" VALUE="6.00" SIZE=5 onChange="champ_verrouille(this,6.00)">
    <TH><INPUT TYPE="text" NAME="p4" SIZE=8>
    <TR>
    <TH><INPUT TYPE="text" NAME="q5" SIZE=3 MAXLENGTH=3 onBlur="test_champ(this)">
    <TD><span class="Style3">12x18</span>
    <TH><INPUT TYPE="text" NAME="pu5" VALUE="7.50" SIZE=5 onChange="champ_verrouille(this,7.50)">
    <TH><INPUT TYPE="text" NAME="p5" SIZE=8>
    <TR>
    <TH><INPUT TYPE="text" NAME="q6" SIZE=3 MAXLENGTH=3 onBlur="test_champ(this)">
    <TD><span class="Style3">DVD</span>
    <TH><INPUT TYPE="text" NAME="pu6" VALUE="10.00" SIZE=5 onChange="champ_verrouille(this,10.00)">
    <TH><INPUT TYPE="text" NAME="p6" SIZE=8>
    <TR>
    <TH><INPUT TYPE="text" NAME="q7" SIZE=3 MAXLENGTH=1 onBlur="test_champ(this)">
    <TD><span class="Style3">Frais d'envoie</span>
    <TH><INPUT TYPE="text" NAME="pu7" VALUE="5.00" SIZE=5 onChange="champ_verrouille(this,5.00)">
    <TH><INPUT TYPE="text" NAME="p7" SIZE=8>
    <TR>
    <TR>
    <TD COLSPAN=3 ALIGN=right BGCOLOR="#CCCCCC"><B>Total $ Canadien </B>&nbsp;&nbsp;
    <TH><INPUT TYPE="text" NAME="total" SIZE=8>
    </TABLE>

    <P>
    <INPUT TYPE="RESET" VALUE="Effacer" >

    </CENTER>
    </FORM>


    <P><HR>
    </BODY>
    </HTML>
    Fichiers attachés Fichiers attachés

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Par défaut
    Merci quand même ! ... J'ai trouvé !

Discussions similaires

  1. Problème avec mon champ date dans le formulaire
    Par PetitChris dans le forum IHM
    Réponses: 4
    Dernier message: 28/08/2014, 09h37
  2. Réponses: 7
    Dernier message: 17/08/2010, 17h05
  3. Problème avec des champs de formulaire
    Par ksper92 dans le forum Langage
    Réponses: 2
    Dernier message: 14/03/2008, 11h49
  4. [XHTML] Problème avec les champs obligatoires d'un formulaire
    Par elodie13 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 26/09/2006, 14h45
  5. Problème avec un champ 'long'
    Par yannick dans le forum Débuter
    Réponses: 2
    Dernier message: 25/07/2003, 14h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo