Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Messages recommandés

Posté(e)

Avec du Javascript ca peut marcher aussi

Posté(e)

Ca marche parfaitement bien avec du JavaScript. J'ai déjà écrit un script respectant le DOM (donc "qui fonctionne au moins sous IE, Mozilla et Opera") à ce sujet.

 

Il faut déjà situer deux champs numériques sur ta page :

<input id="num1" type="text" value="0" onkeyup="javascript:{ numerique(this); calculTotal(); }" onblur="javascript:{ numerique(this); calculTotal(); }" />
<input id="num2" type="text" value="0" onkeyup="javascript:{ numerique(this); calculTotal(); }" onblur="javascript:{ numerique(this); calculTotal(); }" />

(Tu choisis ce que tu veux pour les valeurs par défaut, ici j'ai mis 0)

Ensuite, il te faut un endroit pour afficher ton résultat (je prend l'exemple ici d'un total) :

<span id="total">0</span>

(je prends une balise span, mais n'importe quelle balise (td, div, ...) convient)

Finalement, tu n'as plus qu'à écrire la fonction qui va recalculer ton total et l'afficher :

  function calculTotal() {
     // Recup de l'id de l'endroit où on va afficher le total
     champTotal = document.getElementById("total");
     // On le vide
     while (champTotal.firstChild) champTotal.removeChild(champTotal.firstChild);
     total = 0;
     total += (document.getElementById("num1").value) ? parseFloat(document.getElementById("num1").value) : 0;
     total += (document.getElementById("num2").value) ? parseFloat(document.getElementById("num2").value) : 0;
     // Petite touche cosmétique : on n'affiche que deux décimales
     total = Math.round(total * 100) / 100;
     // On affiche le total
     champTotal.appendChild(document.createTextNode(total));
 }

Si tu veux, tu peux limiter les saisies dans ce champ à des nombres à virgule :

    function numerique(champ) {
       re1 = new RegExp("^[0-9]+\\.?$");
       re2 = new RegExp("^[0-9]*\\.?[0-9]+$");
       if (!re1.test(champ.value) && !re2.test(champ.value)) {
           nouveau = new String();
           entier = true;
           for (i=0; i < champ.value.length; i++) {
               if (champ.value.charAt(i).match(new RegExp("[0-9]"))) {
                   nouveau = nouveau + champ.value.charAt(i);
               } else if (((champ.value.charAt(i)==",") || (champ.value.charAt(i)==".")) && entier) {
                   entier = false;
                   nouveau = nouveau + ".";
               }
           }
           champ.value = nouveau;
       }
   }

Posté(e)
ben j'ai tapé ton script et lorsque j'entre une valeur dans un champ

il y a ecrit Script error! en bas de la fenetre a gauche...

et quand tu double clique sur l'erreur en bas de la fenêtre à gauche ca t'indique quoi come erreur ???

 

++

Nyko

Posté(e)
ben j'ai tapé ton script et lorsque j'entre une valeur dans un champ

il y a ecrit Script error! en bas de la fenetre a gauche...

et quand tu double clique sur l'erreur en bas de la fenêtre à gauche ca t'indique quoi come erreur ???

 

++

Nyko

rien

ca ecrit terminé

  • Tonton a modifié le titre en Insérer calcul dans page html

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...