11521 sujets

JavaScript, DOM et API Web HTML5

Salut a tous je suis tres heureux de joindre ce forum.
Je voudrais effectuer une soustraction avec deux nombres dans des champs selon une condition, Mes codes fonctionnement mais le probleme est quand les conditions ne sont pas respectees le calcul s'effectue quandmeme. Un peu me ferait du bien.

function calculateAmount() {
		var myBoxt = document.getElementById('transaction1').value;	
		var myBoxa = document.getElementById('am').value;
		var resulta = document.getElementById('resulta');	
		if( myBoxt > myBoxa )
		{
			
		var myResulta = myBoxt - myBoxa;
	resulta.value = myResulta;
	}
	else{
		
	resulta.value = '';
	}

		
}
Bonjour et bienvenue sur le forum,

Pour ton code, je ne vois pas de problème, il semble fonctionner, si la valeur de ton premier champ est plus grand que celle du deuxième, on fait la soustraction, sinon on vide le champ de résultat !
No soucis.
J'avais fait un ajustement dans la premiere condition et cela a mache mais la seconde condition ne veut pas marcher...




function calculateAmount() {
		var price = document.getElementById('price').value;
        var transaction1 = document.getElementById('transaction1').value;
        var amount = document.getElementById('amount').value;
        var result = document.getElementById('result');  
var myResult = price * transaction1 ;
        if( transaction1 > amount )
        {
              result.value=0<(rsl=transaction1-amount)?rsl:'';
        }
	else
	  result.value = '';
                       }
         


Bonjour, desole j'avais pas prete attention du link quon m'a refere. Je viens de tester sur le lien tout est presque arrange. mais il y a un probleme avec le champ transaction qui ne fonctionne pas bien lorsque je met une valeur qui n'est pas 1, ce champ fonctionne seulement avec 1, si je met une valeur qui ne commence pas par 1 les conditions de la fonction ne fonctionne plus. Si on teste on verra ce que je dis..http://codepen.io/anon/pen/MamvPg?editors=101
Modifié par baptpro (06 Oct 2015 - 16:08)
Un grand merci ca marche parfaitement grace a vous, mais je ne peux pas marquer le sujet comme resolu parce que ce n'est qu'une etape que je viens de franchir, il me reste encore des etapes pour arriver au but, c'est rassure que je reviendrai vers vous sous peu.......
A +
Bonjour a vous
Je suis en fin de retour pour finaliser ma fonction javascript, grace a vous j'ai franchi plusieurs etapes je suis presque arrive a la fin. maintenant je voudrais realiser quelque je ne sais ou commencer.

j'ai deux champs contenant chacun une valeur par exemple
champ1 = 100
champ2 = 200

Il y un troisieme champ que le user doit lui meme entrer une valeur. Comme mettre une restricition dans ce champs afin que le user puisse mettre des valeurs comprises entre 100 et 200?
Merci davance
Bonjour,

Attention avec parseInt, il faut toujours préciser la base de calcul dans l'appel de cette fonction (ici base 10), sinon il y a un gros risque de surprise.

Pour ton dernier problème, une solution toute simple consiste à utiliser des champ de type="number", tu peux y adjoindre des min et max. Sinon, il faut partir sur du JS.
Voila ce que j'avais essaye de faire mais cela n'a pas marche car les valeurs des champs peuvent changer a tout moment
 var champ1 = parseInt(document.getElementById('champ1 ').value);
   var champ2 = parseInt(document.getElementById('champ2 ').value);

champ1 <input type="text" name="champ1 "/>
champ2 <input type="text" name="champ2 "/>


le user doit entrer valeur compris entre les champs 1 et 2 et ces valeurs peuvent changer a tout moment ils seront toujours de type entier


entrer valeur 
 <input type="number" name="valeur"    min="champ1"  max="champ2"/>

j'ai utilise les variables dans les min et max....
je donne plus de details sur mon probleme pour enfin terminer avec cette fonction.

j'ai deux champs select liees dont les nombres peuvent changer a tout moment par le user. Il y a un troisieme champ (transaction1) que le user doit entrer une valeur qui est compris entre les valeurs de ces 2 champs pour effectuer un calcul. si l'entree du user n'est pas compris entre ces 2 valeur un message doit lui signaler et annuler le calcul. J'ai essaye de faire ca mais sans succes:
function calculateAmount()
{
var champ1 = parseFloat(document.getElementById('champ1 ').value);
var champ2= parseFloat(document.getElementById('champ2').value);<br>var transaction1 = parseFloat(document.getElementById('transaction1 ').value);<br>var price_p= parseFloat(document.getElementById('price_p').value);
var result = document.getElementById('result');
 
 
 if (transaction1 >= champ1 && transaction1 <= champ2 )
      {
 var myResulta = (champ1 - champ2 )* price_p;
 result.value = myResulta;
      }
 else {   result.value = '';
alert('Your value is beyond the amount range please reselect !'); }}


Merci davance et A+
Modifié par baptpro (08 Oct 2015 - 23:43)
Hello
Je me casse toujours la tete pour trouver une solution. Je viens de recopier mes codes sur http://codepen.io/anon/pen/QjgVWO?editors=101. Ils marchent parfaitement comme je le voulais. Mais ces meme codes ne marchent pas correctement sur ma page php
si la valeur du champ transaction1 est superieur a la valeur du champ (to) le message d'alerte est lance mais si la valeur du champ transaction1 est inferieur a la valeur du champ (from) le calcul s'effectue quand meme. Je ne peux comprendre pourquoi cela fonctionne ainsi sur ma page php?

Une idee SVP