Calcul mensualite

Fermé
Coffy - 10 nov. 2018 à 14:21
 Zero - 15 nov. 2018 à 15:14
Bonjour,

Mon objectif est lorsqu'on coche en premier la "checkbox#mensuel" et qu'une valeur est saisie dans le "input#first", le calcul se fait (une division) et le résultat affiché dans le "span.resultat".

Avec le bout de code ci-dessous, le résultat n'est pas bon ( affiche par exemple 100/2 = 5 au lieu de 50)

Par contre l'inverse fonctionne bien, c'est à dire saisie en premier dans "input#first" puis cocher "checkbox#mensuel".

Merci pour votre aide.


<div>Prix<input class="saisie" id='first' type="number"   placeholder="" required  /></div>
			
	
  <div>
    <input type="radio" name="mois" value="2" id="mensuel">
    <label for="mensuel">2</label>
  </div> 

<span id="mois" class="resultat">......</span>





$('.saisie').keyup(function(){ 
    var firstValue  = Number($('#first').val()); 

	var resultValue = firstValue/2;
	
	$( '#mensuel').on( "click", function() {
	
	$( "#mois" ).html(resultValue);
	});
	
if( $('input[name=mois]').is(':checked') ){

$('#first').on('input',function(e){
		$( "#mois" ).html(resultValue);
	});
}	

<




A voir également:

1 réponse

Hello !

Alors, dans ma logique, si la checkbox n'est pas cochée, on garde la valeur de l'input, sinon on divise.

A toi d'adapter.

<!DOCTYPE html>
<html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
  <div>Prix<input class="saisie" id='first' type="number"   placeholder="" required  /></div>
      
  
  <div>
    <input type="checkbox" name="mois" value="2" id="mensuel">
    <label for="mensuel">2</label>
  </div> 

<span id="mois" class="resultat">......</span>
<script>
  $(document).ready(function() {
    $('.saisie').keyup(function(){ 
      var firstValue  = Number($('#first').val()); 
      if(!$('input[name=mois]').is(':checked')) {
          $( "#mois" ).html(firstValue);
      } else {
        var divisor =  $( '#mensuel').val();
        $( "#mois" ).html(firstValue/divisor);
      }
    });

    $('input[name=mois]').click(function() {
      var firstValue  = Number($('#first').val()); 
      if(!$('input[name=mois]').is(':checked')) {
        $( "#mois" ).html(firstValue);
      } else {
        var divisor =  $( '#mensuel').val();
        $( "#mois" ).html(firstValue/divisor);
      }
    });
  });
  
</script>
</body>
</html>

0
pas mal mais ce n'est pas encore ça désolé, le mode calcul est bon mais je voudrais que la saisie faite sur le INPUT n'apparaisse pas mais uniquement le résultat du calcul.

merci
0
Comme ça donc ?

<!DOCTYPE html>
<html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
  <div>Prix<input class="saisie" id='first' type="number"   placeholder="" required  /></div>
      
  
  <div>
    <input type="checkbox" name="mois" value="2" id="mensuel">
    <label for="mensuel">2</label>
  </div> 

<span id="mois" class="resultat">......</span>
<script>
  $(document).ready(function() {
    $('.saisie').keyup(function(){ 
      var firstValue  = Number($('#first').val()); 
      if($('input[name=mois]').is(':checked')) {
          var divisor =  $( '#mensuel').val();
        $( "#mois" ).html(firstValue/divisor);
      }
    });

    $('input[name=mois]').click(function() {
      var firstValue  = Number($('#first').val()); 
      if(!$('input[name=mois]').is(':checked')) {
        $( "#mois" ).html('......');
      } else { 
        if($('#first').val() != '') {
          console.log($('#mensuel').val());
          var divisor =  $('#mensuel').val();
          $("#mois").html(firstValue/divisor);
        }
      }
    });
  });
  
</script>
</body>
</html>

0