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 :

Fonctions et champs de formulaire


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2002
    Messages : 57
    Points : 25
    Points
    25
    Par défaut Fonctions et champs de formulaire
    Bonjour,

    Tout d'abord voici mon script.
    Il dispose d'une fonction qui permet de calculer :
    - le prix d'un article, en fonction de la quantité désirée avec calcul();
    - le prix d'un article, en fonction du type de produit choisi (ici : standard ou bio) avec choisir();
    Ces deux fonctions ont été testées et approuvées !

    Le problème arrive au moment d'assembler les deux. Cela marche, mais de manière assez basique, en mettant une instruction assez longue dans l'input (cf. abricots & bananes) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="abricots_nbre" onkeyup="if (biostandard == 'standard') { abricots.value=(2*this.value).toFixed(2); } else if (biostandard == 'bio') { abricots.value=(2.5*this.value).toFixed(2); } calcule();" />
    Puisqu'à terme la liste doit pouvoir contenir beaucoup d'éléments, cela est très lourd. J'ai donc essayé de réduire la quantité de code utilisé en créant une nouvelle fonction prix();.

    Seulement, ça ne marche pas... quelqu'un aurait-il une idée du problème ? Je soupçonne personnellement la concaténation... J'ai beaucoup de mal avec ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function prix() {
    	if (biostandard == 'standard') { 
    		document.getElementById("pommes").value=(1*document.getElementById("pommes_nbre").value).toFixed(2);
    	} else if (biostandard == 'bio') {
    		pommes.value=(1.5*this.value).toFixed(2); 
    	}
    }
    $

    Merci d'avance

  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 640
    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 640
    Points : 66 672
    Points
    66 672
    Billets dans le blog
    1
    Par défaut
    parseFloat parseInt et Number peuvent t'être utilies ...

    il y a déja quelques posts sur le sujet et même dans la FAQ me semble-t-il ...
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2002
    Messages : 57
    Points : 25
    Points
    25
    Par défaut
    En quoi parseFloat et parseInt pourraient-ils être utiles dans ce cas ?
    Note : Je les ai déjà utilisés pour le calcul de mon total (cf. mon code dans sa totalité ici). Je ne cherche pas à refaire des calculs, je ne vois pas vraiment le rapport (?).
    Merci d'avance.

    PS. S'il existe des sujets dans la FAQ, pourrais-je au moins connaître le nom de mon problème pour les trouver, puisque je ne vois pas quel est le problème, merci

  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 640
    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 640
    Points : 66 672
    Points
    66 672
    Billets dans le blog
    1
    Par défaut
    heu en fait j'ai juste vu cette ligne ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pommes.value=(1.5*this.value).toFixed(2);
    et je me disais que this aurait mérité un parseFloat avant d'être multiplié ...

    jusqu'a ce que je me pose la question: c'est quoi this dans ce contexte ???
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2002
    Messages : 57
    Points : 25
    Points
    25
    Par défaut
    (oublié de linker au-dessus, désolée).
    this, c'est le nombre que l'utilisateur va entrer dans le premier input
    En fait cette multiplication se passe bien, sans parseFloat.
    Le problème ici c'est ma transformation de tout ce qu'il y a dans l'input vers une fonction.
    PS. Si je suis pas claire n'hésitez pas à me dire, je réessaie :p

  6. #6
    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 640
    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 640
    Points : 66 672
    Points
    66 672
    Billets dans le blog
    1
    Par défaut
    je ne vois pas comment this peut être la value saisie ???
    this= la fonction à cet endroit ...
    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. Réponses: 1
    Dernier message: 22/08/2007, 00h05
  2. Réponses: 3
    Dernier message: 21/05/2007, 15h31
  3. Réponses: 13
    Dernier message: 19/04/2007, 11h36
  4. Réponses: 6
    Dernier message: 20/12/2006, 22h01
  5. Ouverture état en fonction du champ d'un formulaire
    Par picatchou dans le forum Access
    Réponses: 1
    Dernier message: 05/10/2006, 16h24

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