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 :

Recuperer la valeur d'un select bis


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Par défaut Recuperer la valeur d'un select bis
    Re à tous,
    je sais ca a déja été demandé des milllllllions de fois, mais mon code ne fonctionne pas.
    comment recuperer la valeurs selectionnée par l'internaute dans mon select

    function locacalculpro()
    {
    var pop=(document.getElementById('locduree').options[document.getElementById('locduree').selectedIndex].value)*12;
    }


    mon select
    <select id="locduree" onchange="locacalculpro();" onchange="locaaffic('locnewmen');">
    <option id="1">1</option>
    <option id="2">2</option>
    <option id="3">3</option>
    <select>


    cela ne fonctionne pas. j'ai impression que cela ne recupere rien...

  2. #2
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function locacalculpro(elt)
    {
    var pop=parseInt(elt.options[elt.selectedIndex].value)*12;
    alert(pop);
    }
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <select id="locduree" onchange="locacalculpro(this);locaaffic('locnewmen');">
    <option id="1">1</option>
    <option id="2">2</option>
    <option id="3">3</option>
    <select>
    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

  3. #3
    Membre éclairé Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Par défaut
    re,
    je ne peux pas utiliser

    function locacalculpro(elt)
    car cette fontion integre plein d'autre parametes qui ne fonctionne plus si je met (elt)

    fonction entiere

    function locacalculpro()
    {
    document.getElementById('formu').locmont.value=Number(document.getElementById('formu').loccumu.value);
    document.getElementById('formu').loctotal.value=Number(document.getElementById('formu').locmons.value)+Number(document.getElementById('formu').locmde.value)+Number(document.getElementById('formu').locautre.value);
    var pop=Number(document.getElementById('formu').locduree.value)*12;
    var pap=(1+(0.08/12));
    var pup=Math.round((Number(document.getElementById('formu').locmont.value)*(0.08/12))/(1 - Math.pow(pap,-pop))*100)/100;
    document.getElementById('formu').locnewmensu.value=pup;
    var pip=Math.round((Number(document.getElementById('formu').locnewmensu.value)*100)/Number(document.getElementById('formu').loctotal.value));
    document.getElementById('formu').locendet.value=pip;
    }
    Comme je suis novice, en javascript j'ai un peu de mal à tous integrer.

    je me sers ensuite de cette fonction pour remplir une partie de mon formulaire automatiquement comme :

    ...<br />Cumul du capital restant en consommation :<br />
    <input type="text" name="loccumu" size="10" onkeyup="locacalculpro();" />€
    <br />Mensualités en conso :<br />
    <input type="text" name="locmensu" size="10" />€
    <br />Loyer :<br />
    <input type="text" name="locloyer" size="10" />€
    <br />Montant du prêt :<br />
    <input type="text" name="locmont" size="10" />€
    <br />Durée (en année, de 1 à 12 ans max):<br />
    <select id="locduree" onchange="locacalculpro();locaaffic('locnewmen');">
    <option id="1">1</option>
    <option id="2">2</option>
    <option id="3">3</option>
    <select>...

  4. #4
    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 ne vois pas pourquoi ta fonction ne fonctionnerais plus en ajoutant un paramètre...
    En revanche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var pop=Number(document.getElementById('formu').locduree.value)*12;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var pop=parseInt(document.getElementById('formu').locduree.value)*12;
    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

  5. #5
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    oh my god

    tu ne suis absolument pas les conseils qu'on te donne...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function locacalculpro()
    {
    document.getElementById('formu').locmont.value=Number(document.getElementById('formu').loccumu.value);
    document.getElementById('formu').loctotal.value=Number(document.getElementById('formu').locmons.value)+Number(document.getElementById('formu').locmde.value)+Number(document.getElementById('formu').locautre.value);
    var pop=Number(document.getElementById('formu').locduree.value)*12;
    var pap=(1+(0.08/12));
    var pup=Math.round((Number(document.getElementById('formu').locmont.value)*(0.08/12))/(1 - Math.pow(pap,-pop))*100)/100;
    document.getElementById('formu').locnewmensu.value=pup;
    var pip=Math.round((Number(document.getElementById('formu').locnewmensu.value)*100)/Number(document.getElementById('formu').loctotal.value));
    document.getElementById('formu').locendet.value=pip;
    }
    ce code est très lourd, très lent (pour peu que la page soit grosse) et très difficilement maintenable parce qu'on n'y voit rien e qu'on fait facilement des erreurs (parenthèses et autres)
    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
    function locacalculpro()
    {
      var formu = document.getElementById("formu");
      var locmons = parseInt(formu.locmons.value);
      var loccumu = parseInt(formu.loccumu.value);
      var locmde = parseInt(formu.locmde.value);
      var locautre = parseInt(formu.locautre.value);
      var locduree = parseInt(formu.locduree.value);
      var locnewmensu = parseInt(formu.locnewmensu.value);
     
      formu.locmont.value = loccumu;
      formu.loctotal.value = locmons+locmde+locautre;
      var pop = locduree*12;
      var pap = (1+(0.08/12));
      var pup = Math.round((parseInt(formu.locmont.value)*(0.08/12))/(1 - Math.pow(pap,-pop))*100)/100;
      formu.locnewmensu.value=pup;
      var pip = Math.round((locnewmensu*100)/parseInt(formu.loctotal.value));
      formu.locendet.value=pip;
    }
    on y voit déjà plus clair ou pas ?
    ensuite pour récupérer la valeur d'un select on demande tout simplement la value (comme pour un input text)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var toto = monSelect.value;
    // équivaut à monSelect.options[monSelect.selectedIndex].value

  6. #6
    Membre éclairé Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Par défaut
    Bonjour et merci pour votre aide,
    desolé pour le code
    mais effectivement ta facon c'est beaucoup + clair et probablement plus legere. Mais je ne connais pas encore assez javascript pour en juger.

    Donc j'ai mis en place ton code à savoir :

    function locacalculpro()
    {
    var formu = document.getElementById("formu");
    var locmons = parseInt(formu.locmons.value);
    var loccumu = parseInt(formu.loccumu.value);
    var locmde = parseInt(formu.locmde.value);
    var locautre = parseInt(formu.locautre.value);
    var locduree = parseInt(formu.locduree.value);
    var locnewmensu = parseInt(formu.locnewmensu.value);

    formu.locmont.value = loccumu;
    formu.loctotal.value = locmons+locmde+locautre;
    var pop = locduree*12;
    var pap = (1+(0.08/12));
    var pup = Math.round((parseInt(formu.locmont.value)*(0.08/12))/(1 - Math.pow(pap,-pop))*100)/100;
    formu.locnewmensu.value=pup;
    var pip = Math.round((locnewmensu*100)/parseInt(formu.loctotal.value));
    formu.locendet.value=pip;
    }
    et un morceau de formulaire :

    ...<div id="loc" style="display: none">
    <br />Cumul du capital restant en consommation :<br />
    <input type="text" name="loccumu" size="10" onkeyup="locacalculpro();" />€
    <br />Mensualités en conso :<br />
    <input type="text" name="locmensu" size="10" />€
    <br />Loyer :<br />
    <input type="text" name="locloyer" size="10" />€
    <br />Montant du prêt :<br />
    <input type="text" name="locmont" size="10" />€
    <br />Durée (en année, de 1 à 12 ans max):<br />
    <select id="locduree" onchange="locacalculpro();locaaffic('locnewmen');">
    <option id="1">1</option>
    <option id="2">2</option>
    <option id="3">3</option>
    <select>
    <div id="locnewmen" style="display: none">
    <br />Nouvelle mensualité :<br />
    <input type="text" name="locnewmensu" size="10" />€...
    Mais cela ne fonctionne pas, lors de la saisie des données par l'internaute cela doit calculer automatiquement le champ "<input type="text" name="locnewmensu" size="10" />" mais la non.

    Cela affiche NaN dans le champ.

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

Discussions similaires

  1. Recuperer la valeur d'un select count()
    Par dodo91 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 20/05/2009, 16h37
  2. [MySQL] recuperer la valeur d'une select dans la meme page
    Par cat_war dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 07/05/2009, 20h19
  3. Réponses: 3
    Dernier message: 16/04/2009, 20h03
  4. [ASP.NET 1.1] Recuperer une valeur d'un SELECT généré en AJAX
    Par User.Anonymous dans le forum ASP.NET
    Réponses: 2
    Dernier message: 24/04/2008, 11h45
  5. Récupérer la valeur d'un select
    Par weed dans le forum Linux
    Réponses: 5
    Dernier message: 25/11/2006, 17h11

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