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 :

Lorsque j'attribue le onkeyup aux 2 champs concernés, rien ne se passe !


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 29
    Par défaut Lorsque j'attribue le onkeyup aux 2 champs concernés, rien ne se passe !
    Bonsoir,

    Quelqu'un peut m'aider avec ceci. C'est un problème que j'ai déjà rencontré.
    Le code s'éxécute bien quand je le lie à un bouton mais quand j'attribue le onkeyup aux 2 champs concernés, rien ne se passe, sauf avec onblur mais ce n'est pas automatique. Merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    function somme_totaux(res1,res2)  {
    	return res1+res2; // Calcul de la Somme ET Renvoi de la Réponse.
    }
     
    function totaux(){
    var res1= Fct_somme() ;// Fct_somme = calcul automatique du champs "totalblanc" = addition des valeurs champs texte>> onkeyup OK
    var res2 = UpdateCost();//UpdateCost = calcul automatique du champs "totalport" = addition des valeurs checkbox)>> on keyup OK
    var testtotal = somme_totaux(parseInt(res1,10) , parseInt(res2,10)); 
    return testtotal;}
     
     
    function afficher()
    {
    var O_Form = document.getElementById('SOMME');
    O_Form.grandtotal.value = totaux(); 
    // problème onkeyup pour l'affichage automatique 
    }
    mes champs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     <input name="totalblanc"  type="text" id="totalblanc" value="0" onkeyup ="afficher();" />
    <input name="totalport" type="text" id="totalport" value="0"  onkeyup ="afficher();" />

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Il nous manque des fonctions et du HTML pour voir l'enchainement et l'existence des éléments appelés dans les fonctions

    - la fonction somme_totaux me semble parfaitement inutile, autant intégrer directement dans la fonction totaux

    - la fonction totaux me semble parfaitement inutile, autant intégrer directement dans la fonction afficher

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 29
    Par défaut
    merci NoSmoking pour ta...réponse.

    Je n'ai jamais fait de programmation (juste quelques petites macros vba). Pour l'instant, je suis en apprentissage (sur le tas).

    Cela ne te paraît peut-être pas nécessaire comme cela, mais ce n'est certainement pas "parfaitement inutile".

    Puisque j'ai déjà quelques éléments de réponse, je continue mes recherches.


    Anita

  4. #4
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    @NoSmoking :
    http://www.developpez.com/actu/32199...7-regles-d-or/
    Règles no. 1 et 2

    @Anita :
    pour qu'on puisse tester nous-mêmes où ça coince, il faudrait que tu nous donnes au moins les éléments suivants :
    – le formulaire "SOMME"
    – l'input "grandtotal"
    – la fonction Fct_somme()
    – la fonction UpdateCost()

    Dans le code que tu nous a donné pour l'instant, il n'y a pas de problème. Peut-être aussi que tu prends l'évènement keyup pour ce qu'il n'est pas : keyup se déclenche au moment où la touche du clavier est relâchée…

    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 29
    Par défaut
    En fait, j'ai remarqué que le calcul se faisait quand j'étais sur le champs et que je pressais la touche.

    J'ai d'abord essayé de mettre un focus, sans succés.

    Mais la solution était beaucoup plus simple que cela . J'ai juste ajouté à mon champs, en plus du "onkeyup", un "onclick" (avec fct afficher), et sur l'autre un "oncheck". Je viens de découvrir que c'était possible!

    Tout fonctionne maintenant!

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input name="qtpu_p" type="text" id="qtpu_p" value="0" size="4" maxlength="4" onkeyup ="afficher(this);" onclick ="Fct_somme();"/>
     
     <input type="checkbox" id='game0' value="9.99"  oncheck ="UpdateCost()" onclick ="afficher(this);"/>

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Je viens de découvrir que c'était possible!
    Ben ça tombe bien, c'est pas possible
    oncheck n'existe pas !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Citation Envoyé par Watilin Voir le message
    Certes, bien que, MAIS...

    1/ en quoi...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function afficher(){
      var O_Form = document.getElementById('SOMME');
      var res1 = Fct_somme() ;
      var res2 = UpdateCost();
      var total = parseInt( res1, 10) + parseInt( res2, 10);
      O_Form.grandtotal.value = total;
    }
    ...ne respecte pas la règle #1

    2/ concernant la fonction somme_totaux, elle aurait à mon sens eut une raison d'exister si elle avait fait autre chose que return a+b, comme le test sur les données à traiter par exemple.

    Ceci étant le principal du message reste
    Citation Envoyé par NoSmoking
    Il nous manque des fonctions et du HTML pour voir l'enchainement et l'existence des éléments appelés dans les fonctions

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 29
    Par défaut
    @Bovino onchange, pas oncheck

    Voici dans un premier temps, je continue dans ce sens...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function totaux()
    {
     var res1= Math.ceil(somme());
     var res2 = Math.ceil(UpdateCost());
     var grandtotal = res1 + res2
     var O_Form = document.getElementById('SOMME');
     O_Form.grandtotal.value = grandtotal;
       }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     <input name="blanc_qtpu_p" type="text" id="blanc_qtpu_p" onkeyup ="totaux();" />
    .....
    <input name="livraison1" type="checkbox" id='livraison1'  onclick="totaux()" value="10" />
    .....
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/03/2008, 15h30
  2. Réponses: 6
    Dernier message: 13/06/2007, 14h38
  3. Réponses: 3
    Dernier message: 25/05/2007, 00h01
  4. [Report] Attribuer une position a un champ
    Par Ora92_IDS dans le forum Oracle
    Réponses: 15
    Dernier message: 25/04/2007, 19h30
  5. Réponses: 17
    Dernier message: 16/10/2005, 21h01

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