cherche contributeur pour bout de code

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : cherche contributeur pour bout de code

Re: cherche contributeur pour bout de code

par nebil » 03 oct. 2010, 15:10

alors

-j'entre le prix 200 000 puis une fois mon curseur dans le case pourcentage j'ai une fenêtre windows qui dit "nb : NaN => NaN"
-puis quand j'entre le pourcentage j'ai une autre fenêtre windows "nb : 212000 => 212 000"
-du coup la fenêtre total après avoir viré toutes les fenêtres windows contient bien le résultat avec le séparateur

résultat

prix ( pas de separation )
pourcentage % fenetre intempestive windows
montant du pourcentage pas de separateur
montant total séparateur mais après avoir fermer fenêtre intempestive windows
<input   type="text" class="input"   id="net_vendeur" name="net_vendeur" tabindex="24" />


<input type="text" onkeyup="javascript&#058;calcul();" class="input"  name="pourcentage_honoraire"  id="pourcentage_honoraire" maxlength="5"  style="width:40px; float:left;" tabindex="25" 
value="%" onfocus="this.value=''" />

<input type="text" class="input" onkeyup="javascript&#058;calcul2();"   name="montant_honoraire"  id="montant_honoraire" style="width:124px;" tabindex="26" 
>

<input type="text" class="input"  name="prix_dannonce"  id="prix_dannonce" maxlength="10" tabindex="27"  />

Code : Tout sélectionner

var calcul = function(){ var net_vendeur = document.getElementById('net_vendeur').value; var pourcentage_honoraire = document.getElementById('pourcentage_honoraire').value; var montant_honoraire = parseFloat(net_vendeur) * parseFloat(pourcentage_honoraire) / 100; document.getElementById('montant_honoraire').value = montant_honoraire; document.getElementById('prix_dannonce').value = lisibilite_nombre(parseFloat(net_vendeur) + parseFloat(montant_honoraire)); } var calcul2 = function(){ var net_vendeur = document.getElementById('net_vendeur').value; var montant_honoraire = document.getElementById('montant_honoraire').value; document.getElementById('prix_dannonce').value = lisibilite_nombre(parseFloat(net_vendeur) + parseFloat(montant_honoraire)); } function lisibilite_nombre(nbr) { var nombre = ''+nbr; var retour = ''; var count=0; for(var i=nombre.length-1 ; i>=0 ; i--) { if(count!=0 && count % 3 == 0) retour = nombre[i]+' '+retour ; else retour = nombre[i]+retour ; count++; } alert('nb : '+nbr+' => '+retour); return retour; }

Re: cherche contributeur pour bout de code

par Nours312 » 03 oct. 2010, 13:18

si je vire mon onkeyUp comment j'appelle ma fonction dans mon input ?
la fonction est appelée depuis les autres ....

Re: cherche contributeur pour bout de code

par nebil » 03 oct. 2010, 12:18

si je vire mon onkeyUp comment j'appelle ma fonction dans mon input ?

Re: cherche contributeur pour bout de code

par Nours312 » 30 sept. 2010, 09:08

as tu essayé en virant ton onkeyUp et en mettant :

[javascript]
document.getElementById('mprix').value = lisibilite_nombre(parseFloat(prix) + parseFloat(mpour));
[/javascript]

dans la fonction calcul2 et son équivalent dans calcul() .. ?

Re: cherche contributeur pour bout de code

par nebil » 29 sept. 2010, 22:08

c'est parfait ça marche très bien je vous remercie .

j'ai trouvé ce bout de code qui normalement doit séparé les dizaines les milliers etc...
mais sa marche pas, j'appelle la fonction dans le champs de cette manière
onkeyup="lisibilite_nombre(nbr);"

Code : Tout sélectionner

function lisibilite_nombre(nbr) { var nombre = ''+nbr; var retour = ''; var count=0; for(var i=nombre.length-1 ; i>=0 ; i--) { if(count!=0 && count % 3 == 0) retour = nombre[i]+' '+retour ; else retour = nombre[i]+retour ; count++; } alert('nb : '+nbr+' => '+retour); return retour; }

Re: cherche contributeur pour bout de code

par jojolapine » 29 sept. 2010, 19:46

En considérant que toutes les données entrées peuvent être des nombres à virgule,
Le code de nours312 devient:

Code : Tout sélectionner

Considérant les champs comme ceci : input#prix input#pour input#mpour input#mprix
1. on keyUp sur les deux premiers champs tu lances la fonction suivante :
[javascript]
var calcul = function(){
var prix = document.getElementById('prix').value;
var pour = document.getElementById('pour').value;

var mpour = parseFloat(prix) * parseFloat(pour) / 100;

document.getElementById('mpour').value = mpour;
document.getElementById('mprix').value = parseFloat(prix) + mpour;
}
[/javascript]

2. onKeyUp sur le troisieme champ :
[javascript]
var calcul2 = function(){
var prix = document.getElementById('prix').value;
var mpour = document.getElementById('mpour').value;

document.getElementById('mprix').value = parseFloat(prix) + parseFloat(mpour);
}
[/javascript]

/!\ Attention je n'ai pas relu le code, j'ai appliqué bêtement les fonctions de transtypage sur les données provenant de la page...
J'en ai donc peut-être oublié, et il y a peut-être des erreurs de frappe.

Re: cherche contributeur pour bout de code

par nebil » 29 sept. 2010, 19:31

merci , mais je ne suis pas capable de comprendre "la méthode parseInt() ou parseFloat()" ni autre chose d'ailleurs des explications données malheureusement.

Re: cherche contributeur pour bout de code

par jojolapine » 29 sept. 2010, 15:47

Pour le bug de l'addition remplacée par la concaténation, il faut utiliser la méthode parseInt() ou parseFloat() sur toute tes valeurs numériques récupérées via le dom, afin que l'opérateur + fasse bien une addition et non une concaténation.

Re: cherche contributeur pour bout de code

par nebil » 28 sept. 2010, 18:59

alors sa fonctionne après les corrections que vous m'avez indiquer le seul dysfonctionnement
c'est que le total n'est pas additionner

je veut dire

si le prix est de 200
et le pourcentage et de 10%
le montant pourcentage et donc de 20 et

le total ne s'affiche pas additionner mais cote a cote c'est a dire dans notre exemple le total s'affiche 20020 au lieu de 220

sinon le principe de passer par le pourcentage ou directement par l'entrée du montant fonctionne aussi impeccable =D> =D> .

puis-je demander en plus a ce qu'il soit possible d'afficher un blanc pour séparés les dizaines et les milliers et les centaines de milles histoires que sa face propre. :priere:

Re: cherche contributeur pour bout de code

par Nours312 » 28 sept. 2010, 09:03

ouais ... donc, JavaScript, comme d'autres langages ont la particualrité de considérer une fonction comme un élément, un objet de type function !...

Tu doit donc utiliser son nom pour l'appeler :
<input  onkeyup="javascript:calcul();" type="text" class="input"   id="net_vendeur" name="net_vendeur" tabindex="24"/>
ensuite, il y a une erreur dans la 3ième ligne de ta fonction, tu utilises la variable pour or, tu l'a renommée ;)

Fais ses corrections et dis nous ce que ça donnes !

Re: cherche contributeur pour bout de code

par nebil » 28 sept. 2010, 00:13

voila comment j'ai utiliser ton code car ca marche pas mais cela vient surement de moi:
coller ton code entres les balises javascript entre les balise head puis j'ai changer les noms des ID de mes champs inputs;

puis j'ai fait appel au fonction comme suit

Code : Tout sélectionner

<input onkeyup="javascript:function();" type="text" class="input" id="net_vendeur" name="net_vendeur" tabindex="24"/>

Code : Tout sélectionner

[b]<HEAD>[/b] <script type="text/javascript" language="javascript" > var calcul = function(){ var net_vendeur = document.getElementById('net_vendeur').value; var pourcentage_honoraire = document.getElementById('pourcentage_honoraire').value; document.getElementById('montant_honoraire').value = net_vendeur * pour / 100; document.getElementById('prix_dannonce').value = net_vendeur + document.getElementById('montant_honoraire').value; } var calcul2 = function(){ var net_vendeur = document.getElementById('net_vendeur').value; var montant_honoraire = document.getElementById('montant_honoraire').value; document.getElementById('prix_dannonce').value = net_vendeur + montant_honoraire; } </script> [b]</HEAD>[/b]

Re: cherche contributeur pour bout de code

par Nours312 » 27 sept. 2010, 23:30

Donc,

Code : Tout sélectionner

Considérant les champs comme ceci : input#prix input#pour input#mpour input#mprix
1. on keyUp sur les deux premiers champs tu lances la fonction suivante :
[javascript]
var calcul = function(){
var prix = document.getElementById('prix').value;
var pour = document.getElementById('pour').value;

document.getElementById('mpour').value = prix * pour / 100;
document.getElementById('mprix').value = prix + document.getElementById('mpour').value;
}
[/javascript]

2. onKeyUp sur le troisieme champ :
[javascript]
var calcul2 = function(){
var prix = document.getElementById('prix').value;
var mpour = document.getElementById('mpour').value;

document.getElementById('mprix').value = prix + mpour;
}
[/javascript]

Bon, c'est pas joli, mais comme tu veux un truc vite fait sans spécialement apprendre, ça devrait fonctionner !... tu peux vérifier les données pour éviter d'avoir des soucy lors des ajouts avec parseFloat() et/ou parseInt()

@++

cherche contributeur pour bout de code

par nebil » 27 sept. 2010, 23:19

bonjour,

nul nul nul et archi nul en javascript est sincèrement j'ai pas le temps de m'y mettre,
voila mon soucis si une âme charitable peut m'aider je suis preneur ,

j'ai 4 champs 2 sont systématiquement renseigner prix et pourcentage
je souhaiterai que les montants apparaissent automatiquement dans les deux autres .

1 champ---prix = 200
2 champ---% = 10%
3 champ---montant correspondant au pourcentage automatiquement = 20
4 champ---total calculer automatiquement = 220

mais c'est là que les choses se corsent

il faut aussi permettre a l'internaute de décider que le total sera calculer non pas avec le taux de pourcentage
mais directement en entrant un montant dans le champ 3 comme suit ;

1 champ---prix = 200 ok
2 champ---% = 10% ignoré
3 champ---montant renseigner par l'internaute = 80
4 champ---total calculer automatiquement = 280

c'est la combinaison des deux possibilités dans le même champs qui rend difficile la création du code

je sais que je demande peut-être beaucoup mais si un crak en javascript passe par la cela ne devrait être qu'une histoire de qq minutes de réflexion.


merci d'avance.