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 :

RegExp et boucle for


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2013
    Messages : 72
    Points : 21
    Points
    21
    Par défaut RegExp et boucle for
    Bonsoir. Alors voila j'en suis actuellement ici dans mon bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <SCRIPT language=javascript>
    var chaine="19,5-20-88Euralis";
    var reg=new RegExp("[-]+", "g");
    var NPK=chaine.split(reg);
    for (var i=0; i<NPK.length; i++) {
     document.write( "<input type='text' name='N' value='  " + NPK[i] + " ' onKeyUp='Calculer()'/>");
    <!-- document.write("NPK[" + i + "] = " + NPK[i] + "<BR>");-->
    }
    </SCRIPT>
    dans ma chaine il me reste a retirer les lettres donc pour l'exemple ça serait Euralis qui me faudrait encore supprimé.

    Ensuite quand je fais ma boucle for pour générer mes inputs il porte le nom name=N tous les trois, j'aimerai qu'il est un name unique genre name=N1, name=N2, name=N3

    Merci désolé je débute en javascript fait que du php et vu mon projet je dois me mettre au javascript et jquery.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script type='text/javascript'>
    var chaine="19,5-20-88Euralis";
    var reg=/-+/g;
    var NPK=chaine.split(reg);
    for (var i=0; i<NPK.length; i++) {
    newinput= document.createElement('<input type="text" name="N'+i+'" value="' + NPK[i].replace(/[^\d,]+/g,'') + '" onkeyup="Calculer()" />');
    document.body.appendChild(newinput)
    }
    </script>
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type='text/javascript'>
    var chaine="19,5-20-88Euralis";
    chaine=chaine.replace(/[^\d,-]+/g,'');
    var reg=/-+/g;
    var NPK=chaine.split(reg);
    for (var i=0; i<NPK.length; i++) {
    newinput= document.createElement('<input type="text" name="N'+i+'" value="' + NPK[i] + '" onkeyup="Calculer()" />');
    document.body.appendChild(newinput)
    }
    </script>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2013
    Messages : 72
    Points : 21
    Points
    21
    Par défaut
    Merci. J'ai remis mon document.write car avec
    newinput= document.createElement( cela ne fonctionne pas...
    Je tombe sur un autre souci...
    Une fois extrait mes 3 nombre j'y applique un calcul avec un affichage directe.
    j'ai donc en début de page
    j'applique plusieurs calcul bête qui marche
    mais le dernier
    form1.NPK.value = Number(form1.dose_ha.value) * Number(form1.N0.value) ; me retourne dans mon input NaN
    J'ai remplacé le Number(form1.N0.value) par le Number(19,5) et cela marche.
    Ou ai je l'erreur? Mes 3 inputs générer par le code sont bien appelé N0 N1 N2 ?
    Cela peut il provenir du fait que le javascript de calcul soit avant et que les 3 inputs a ce moment n'existe pas encore vu qu'elle ce trouve en fin de page?

    PS: J'ai un souci j'arrive pas a mettre le code javascript qui me fait mes calcul temps réelle quand je poste le navigateur me sort qu'il y a pas de connexion..

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    Merci. J'ai remis mon document.write

    http://blog.developpez.com/web/p1065..._en_javascript
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2013
    Messages : 72
    Points : 21
    Points
    21
    Par défaut
    Grrr bon toujours pareil, j'avais oublié de remettre correctement le code.

    Donc le code précédent ne communique pas avec le code JavaScript qui me permet de faire un calcul temps réel
    J'arrive plus à mettre de code ici donc je mets un lien direct vers la page.

    page test

    Si l'on met une valeur dans l'input Dose/ha normalement je dois avoir via le calcul une valeur dans NPK

    Voila...
    Je sens que récupérer mes valeurs par la suite dans mon menu select... je vais m’amusé, avec JavaScript j'ai vraiment du mal, ça change pas mal par rapport au PHP

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2013
    Messages : 72
    Points : 21
    Points
    21
    Par défaut
    J'ai peut etre identifié le souci...
    Il semble que avec document.createElement l'on doit décomposer les attributs.

    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
    <SCRIPT language=javascript>
    var chaine="19,5-20-88Euralis";
    chaine=chaine.replace(/[^\d,-]+/g,'');
    var reg=/-+/g;
    var NPK=chaine.split(reg);
    for (var i=0; i<NPK.length; i++) {
    var newinput= document.createElement("input");
    	newinput.setAttribute('type','text');
    	newinput.setAttribute('name','N'+i);
    	newinput.setAttribute('readonly','readonly'); 
    	newinput.setAttribute('value','+ NPK[i] +');
    	newinput.setAttribute('size', '10');
    	newinput.setAttribute('onKeyUp', 'Calculer()');
    <!--document.body.appendChild(newinput)-->
    document.getElementById('NPK_id').appendChild(newinput)
    }
    </SCRIPT>
    <div id="NPK_id"></div>
    Sauf que désormais value me retourne plus mes valeurs de array NPK
    il retourne uniquement + NPK[i] + écrit dans les inputs

    Je précises que ton code ne me créer pas d'input dans ma page d'ou le fait qu'au départ j'ai remis document.write

    autre chose, j'ai regardé sur le net il semblerait que pour placé les inputs au bonne endroit il faille utilisé document.getElementById mais si je mets ça, il apparaisse pas.. j'ai vraiment du mal avec javascript

  7. #7
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    il retourne uniquement + NPK[i] + écrit dans les inputs
    En même temps, c'est ce que tu demandes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    newinput.setAttribute('value','+ NPK[i] +');


    Peut être qu'en affectant la valeur de ta variable, ça correspondrait mieux à ton besoin...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    newinput.setAttribute('value',NPK[i]);
    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

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    Sauf que désormais value me retourne plus mes valeurs de array NPK
    il retourne uniquement + NPK[i] + écrit dans les inputs
    C'est normal puisque c'est ce que tu lui demandes de faire ...
    Tu confonds string 'NPK[i]' et variable NPK[i]
    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
    var chaine="19,5-20-88Euralis";
    chaine=chaine.replace(/[^\d,-]+/g,'');
    var reg=/-+/g;
    var NPK=chaine.split(reg);
    for (var i=0; i<NPK.length; i++) {
    var newinput= document.createElement("input");
    	newinput.setAttribute('type','text');
    	newinput.setAttribute('name','N'+i);
    	newinput.setAttribute('readonly','readonly'); 
    	newinput.setAttribute('value', NPK[i] );
    	newinput.setAttribute('size', '10');
    	newinput.setAttribute('onKeyUp', 'Calculer()');
     
    document.getElementById('NPK_id').appendChild(newinput)
    }
    ceci étant la méthode précédente fonctionne parfaitement ...

    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
    <body >
    <div id="NPK_id">
    </div>
    <script type="text/javascript">
    var chaine="19,5-20-88Euralis";
    chaine=chaine.replace(/[^\d,-]+/g,'');
    var reg=/-+/g;
    var NPK=chaine.split(reg);
    for (var i=0; i<NPK.length; i++) {
    var newinput= document.createElement('<input type="text" name="'+NPK[i]+'" readonly="readonly" value="'+NPK[i]+'" size="10" onkeyup="Calculer()" />');
     
    document.getElementById('NPK_id').appendChild(newinput)
    }
    </script>
    </body>

    Accessoirement, un keyup sur des inputs en readonly ... mais bon je ne connais pas le reste de ton code

    A noter aussi que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!--document.body.appendChild(newinput)-->
    n'est pas la syntaxe d'eun commentaire js et fait planter ton script !!
    il s'agit là de commentaire HTML

    en js les commentaires:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // un commentaire sur une ligne 
     
    /* un 
    commentaire
    sur 
    plusieurs lignes*/
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2013
    Messages : 72
    Points : 21
    Points
    21
    Par défaut
    J'ai corrigé le problème des commentaires, c'est comme sous php.

    Bon je suis reparti sur ton code...
    mais nul part dans la page sur le navigateur je ne voie mes 3 inputs qui logiquement devrait avoir un
    name='N0' value='19,5'
    name='N1' value='20'
    name='N2' value='88'

    Ensuite si je teste avec la seconde méthode et ta correction.
    j'ai mes input qui apparaisse correctement, avec les bonnes valeurs mais
    cela interagie pas avec mon seconds code.
    ex: name='N0' value='19,5'
    soit utilisé ensuite par ce bout de code.
    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
    19
     
    <script language='javascript'>
    function Calculer()
     {
        if (isNaN(form1.total.value) == true)
        {
            alert('Merci de saisir une valeur correct. Calcul impossible.');
            form1.total.value = '0';
        }
        else
        {
    form1.total.value = Number(form1.surface1.value) + Number(form1.surface2.value) + Number(form1.surface3.value) ;
    form1.quantite.value = Number(form1.dose_ha.value) * Number(form1.total.value) ;
     
    form1.NPK.value = Number(form1.dose_ha.value) * Number(form1.N0.value) / Number(100) ;
    //form1.NPK.value = Number(form1.dose_ha.value) * Number(19,5) / Number(100) ;
        }
     }
    </script >
    Sauf qu'il semble pas trouver les valeurs pour Number(form1.N0.value)
    Comment puis je faire?

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    il semblerait que les version recentes de javascript ne permettent plus le create element à partir d'eun chaine ?

    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
    19
    20
    21
    22
    23
    24
    <body >
    <div id="NPK_id">
    </div>
    <script type="text/javascript">
    function Calculer(){
    console.log (document.getElementsByName("N0")[0].value)
    }
     
    var chaine="19,5-20-88Euralis";
    chaine=chaine.replace(/[^\d,-]+/g,'');
    var reg=/-+/g;
    var NPK=chaine.split(reg);
    for (var i=0; i<NPK.length; i++) {
    var newinput= document.createElement('input');
    newinput.name="N"+i;
    newinput.setAttribute("readonly","readonly");
    newinput.value=NPK[i];
    newinput.size="10";
    newinput.onkeyup=Calculer;
    document.getElementById('NPK_id').appendChild(newinput)
    }
     
    </script>
    </body>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Il me semble que c'était surtout une spécificité de IE.
    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

  12. #12
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2013
    Messages : 72
    Points : 21
    Points
    21
    Par défaut
    Pouvez vous m'expliqué le but de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function Calculer(){
    console.log (document.getElementsByName("N0")[0].value)
    }
    et ce que je dois en faire.
    Effectivement dans la console je voie 19,5

    mais d'une, un bête copier coller me génère mes 3 inputs avec les valeurs,
    mais la fonction Calculer() ne marche plus ensuite nul par.
    qu'est que deviens ceci maintenant?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    form1.NPK.value = Number(form1.dose_ha.value) * Number(form1.N0.value) / Number(100) ;
    du code précédent ??

    page test
    Si vous allez a cette url, que l'on met une valeur dans la case Dose/ha
    je dois avoir une valeur dans la case NPK ( celle vide sous les 3 autres )

    ma fonction Calculer() elle me sert pour que si j'ai une valeur dans Dose/ha
    que dessous je mets une valeur dans Surface, alors j'ai automatiquement une multiplication pour remplir le case Quantité.

    Rahh ça m'énerve de piper rien...

  13. #13
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function Calculer(){
    console.log (document.getElementsByName("N0")[0].value)
    }
    c'est juste pour le debuggae,
    n'ayant pas ta fonction de calcul sou la main je me suis créé une fonction qui affiche la valeur d'un input dans la console javascript
    cette fonction ne t'es d'aucune utilité ...

    pour ce qui est de la "console" je te conseille fortement de jeter un oeil par ici ..
    http://eric-pommereau.developpez.com...l-web/firebug/
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  14. #14
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2013
    Messages : 72
    Points : 21
    Points
    21
    Par défaut
    Oui j'ai découvert cette console. Je ne connaissais pas merci. J'ai pas encore tout compris mais a l'utilisation cela viendra. Actuellement je teste uniquement sous chrome mais il y a un équivalent a firebug. Merci.

    Pour la fonction calcul Calculer() je te les mises deja.
    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
    <script language='javascript'>
    function Calculer()
     {
        if (isNaN(form1.total.value) == true)
        {
            alert('Merci de saisir une valeur correct. Calcul impossible.');
            form1.total.value = '0';
        }
        else
        {
    form1.total.value = Number(form1.surface1.value) + Number(form1.surface2.value) + Number(form1.surface3.value) ;
    form1.quantite.value = Number(form1.dose_ha.value) * Number(form1.total.value) ;
     
    form1.NPK.value = Number(form1.dose_ha.value) * Number(form1.N0.value) / Number(100) ;
    //form1.NPK.value = Number(form1.dose_ha.value) * Number(19,5) / Number(100) ;
        }
     }
    </script >
    C'est la dernière ligne form1.NPK.value= etc...
    Celle commenté c'est pour que tu puisses voir ou je veux que normalement il y est ma valeur. Les lignes avant marche bien sur ma page il me reste plus que celle ci a faire marché...

    Voila merci de ta patience.

  15. #15
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2013
    Messages : 72
    Points : 21
    Points
    21
    Par défaut
    En cherchant une manière de me débugger j'ai trouvé ceci.
    http://javascript.developpez.com/faq...amps#ajoutName

    D'ailleurs le dernier est de toi, et parlé notamment du problème rencontrer précédemment.

    Sinon j'ai un peu avancé pour le 2eme bug... dans la console avec
    console.log (document.getElementById("N0").value)
    j'ai bien 19,5

    si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var test_NPK = document.getElementById("N0").value;
    puis mon calcul
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    form1.NPK.value = Number(form1.dose_ha.value) * Number(test_NPK) / Number(100) ;
    dans l'input du résultat il affiche NaN donc cela veut dire que var test_NPK n'est pas un nombre. Comment ne peut il pas etre un nombre ...

  16. #16
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var test_NPK = + document.getElementById("N0").value;
     
     
    form1.NPK.value = + form1.dose_ha.value * test_NPK /100 ;
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  17. #17
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2013
    Messages : 72
    Points : 21
    Points
    21
    Par défaut
    Cela ne fonctionne toujours pas. Cela me retourne NaN encore

    Ce peut il que: La fonction calcul ce trouve dans le head normal...
    Ensuite dans le body j'ai mon script qui découpe 19,5-22-88Euralis en 3 variable contenant les nombres.
    si l'on fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	<script type="text/javascript">
    	function Calculer(){
    	console.log (document.getElementById("N0").value)
    	}
    j'ai donc bien 19,5 afficher dans la console.
    Jusque la tout va bien.
    Ce nombre doit etre envoyé dans la fonction Calculer() pour que le calcul ce face et donc ça a chaque fois que l'événement Calculer() est appelé soit dans les plein d'input avec onKeyUp='Calculer()

    Ma question est, ce peut il que la variable est une porté limité? local, global? j'ai testé les 2 cela change rien mais je le fais peut etre pas au bonne endroit.

    J'ai également tenté de faire un document.write(test_NPK); pour savoir si il afficherait bien 19,5 mais cela ne donne rien...

    j'ai mis également var test_NPK = "19"; a la place du précédent var test_NPK = + document.getElementById("N0").value; et ça marche correctement donc cela me semble montrer que document.getElementById("N0").value n'entre pas dans la fonction Calculer() ou qu'elle est vidée a un moment...

  18. #18
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    commence déja par utiliser une suntaxe plus rigoureuse ;..


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     document.forms['form1'].elements['dose_ha'][0].value
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  19. #19
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2013
    Messages : 72
    Points : 21
    Points
    21
    Par défaut
    Oui c'est sur mais meme avec ça, j'ai toujours en résultat NaN
    et cela vient toujours de document.getElementById("N0").value qui je sais pas ne contient pas la valeur ou pas la bonne ou qui s'efface...
    mais autre input sont peut être mal formaté mais elle marche...

  20. #20
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    si je te mets ça cote à cote ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (document.getElementById("N0").value
    vois tu ton souci

    encore une fois cette ligne était pour debugguer mon code ...
    si tu n'as pas d'id sur ton element, l'appeler par son id est vain ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. Boucle for et RegExp infinie
    Par nikolaus dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/10/2009, 16h32
  2. Réponses: 3
    Dernier message: 06/07/2004, 10h21
  3. [Debutant] Batch et Boucle for
    Par ludovic.fernandez dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 06/05/2004, 19h21
  4. [Swing][boucles] for, do, if .....comment faire simple?
    Par chastel dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 02/05/2004, 22h49
  5. [langage] boucle "for" modification du pas
    Par K-ZimiR dans le forum Langage
    Réponses: 4
    Dernier message: 29/04/2004, 11h54

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