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 :

formater plusieurs champs


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2005
    Messages
    315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 315
    Par défaut formater plusieurs champs
    bonjour,
    j'essaie de formater plusieurs champs inputText en les plaçant des "." pour les milliers.

    voici mon 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
    20
     
    function formatte(valeur){
     
    isIntegerTest(valeur);  //test si la valeur est un entier 
     
    var valeurformate =new Array()
    var tempval=valeur.split('.')
    valeur=tempval[0].split('.').join('')
    valeur=valeur.split('').reverse() 
     
    var i=0
    while(i<valeur.length){
     
     valeurformate.push( (valeur[i+2]?valeur[i+2]:'') + (valeur[i+1]?valeur[i+1]:'') + valeur[i] );
     i=i+3;
    }
      //alert("valeur formatée:   "+valeurformate);
    valeurformate=valeurformate.reverse().join('.') +( tempval[1]?tempval[1].length>0?'.'+tempval[1]:'':'');
    document.getElementById('moninput').value=valeurformate;
    }
    cela marche pour un champ mais quand j'essaie de le faire avec 3 champs c'est la cata ,
    quelqu'un a une idée svp ?!!

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par paolo2002 Voir le message
    cela marche pour un champ mais quand j'essaie de le faire avec 3 champs c'est la cata ,
    quelle sorte de cata ?
    A priori ta fonction ne gère qu'un champ "en dur" (dernière instruction)

    On peut voir l'appel de formatte(valeur) ?

    Parce qu'a priori je dirais
    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
    function formatte(objInput){
    
    var valeur = objInput.value;               
    isIntegerTest(valeur);  //test si la valeur est un entier 
                      
    var valeurformate =new Array()
    var tempval=valeur.split('.')
    valeur=tempval[0].split('.').join('')
    valeur=valeur.split('').reverse() 
     
    var i=0
    while(i<valeur.length){
      
     valeurformate.push( (valeur[i+2]?valeur[i+2]:'') + (valeur[i+1]?valeur[i+1]:'') + valeur[i] );
     i=i+3;
    }
      //alert("valeur formatée:   "+valeurformate);
    valeurformate=valeurformate.reverse().join('.') +( tempval[1]?tempval[1].length>0?'.'+tempval[1]:'':'');
    objInput.value=valeurformate;
    }
    et bien sûr l'appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" onchange="formatte(this)">
    EDIT : en plus ça évite de modifier le paramètre lui même ...

    A+

  3. #3
    Membre éclairé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2005
    Messages
    315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 315
    Par défaut comparaison entre deux nombres
    bonjour,

    je rentre le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (document.forms[0].elements['inv1.exitTask.tvariable.DA_montantTotal.string'].value>document.forms[0].elements['inv1.exitTask.tvariable.DA_montantHT.string'].value){
    //mes instruction
    }
    ce que je remarque c'est que la comparaison ne fonctionne pas à tous les coups,
    je vérifie bien pourtant qu'elle se fait entre deux entiers !!!

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut


    Je ne vois pas bien le rapport avec le problème précédent
    Ceci dit, cette syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms[0].elements['inv1.exitTask.tvariable.DA_montantTotal.string'].value
    est obsolète (voire fausse) ... à moins que tu n'aies un objet dont le name est
    'inv1.exitTask.tvariable.DA_montantTotal.string'

    Du point de vue comparaison elle-même, tu compares des .value
    Or ils sont toujours de type string par défaut.
    Il faut au moins les convertir pour les comparer
    parseInt(nnn, 10) si ce sont des entiers
    parseFloat(nnn) pour les float ...

    EDIT : sinon : "2" est considéré comme supérieur à "11" par ex. (comparaison alpha)

    A+

  5. #5
    Membre éclairé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2005
    Messages
    315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 315
    Par défaut formater plusieurs champs
    désolé, je pensais avoir écrit dans un nouveau post,

    merci pour ta réponse, effectement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    inv1.exitTask.tvariable.DA_montantTotal.string
    est un objet,

    j'essaie de voir avec les convertion !
    thanks

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

Discussions similaires

  1. [AC-2007] Concaténer plusieurs champs d'une table dans une requête avec format date
    Par MelaAllIn dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 25/08/2011, 10h05
  2. Réponses: 0
    Dernier message: 21/06/2010, 16h58
  3. [CR] Groupement dynamique sur plusieurs champs paramètrés
    Par CDRIK dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 07/06/2004, 17h55
  4. recuperer les id sur plusieurs champs
    Par matN59 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/03/2004, 10h23
  5. [CR9] Plusieurs champs dans details
    Par maxxou dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 28/01/2004, 13h35

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