Multi clone calcul jquery

Fermé
Coffy - 2 janv. 2020 à 13:52
 Coffy - 4 janv. 2020 à 12:55
Bonjour

J'ai un code qui fonctionne pour faire des calculs avec le résultat qui apparaît dans une div.

Je veux le cloner et que le nouveau code présent dans le nouveau conteneur fonctionne

J'ai essayé plusieurs méthodes mais sans résultat.

Merci de votre aide

Vous pouvez tester le code ici :

https://jsfiddle.net/z7un0xp3/

function Clone(clonebutton) {
var row = $(clonebutton).parent(),

original = $('#divRow0'), // DIV SOUS CONTAINER
clone = $(original).clone(true, true);


clone.find('.example-one-input').val('') // CLEAR VALUE. 
clone.find('.example-one-value').text('0.0e'); // CLEAR VALUE. 
$('#container').append(clone);
}



$(".btnremove").click(function(e) {
 $(this).closest('.clonerow').remove();     
});


$(".btnclone").click(function(e) {
$(".btnremove:last").css("display", "block");

});
A voir également:

2 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
2 janv. 2020 à 19:11
Bonjour,

Et donc, quel est ton souci exactement ?
La fonction de clone semble correctement remplir son rôle, y compris le bouton remove..;

Par contre, pour tes calculs, là il faut modifier un peu ton code.
En effet, tu te bases sur les ID (sachant que par définition.. un ID (identifiant..) se doit être unique !)
Il serait plus judicieux de les retirer et, à la place, utiliser des class .
0
merci j'ai bien passer les "ID" en "class" mais après "clonage" les calculs ne se font pas dans le nouveau "formulaire"
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
4 janv. 2020 à 12:44
Tu as changé quoi et comment ?

Sans nous montrer l'intégralité de ton code il ne nous sera pas possible de t'aider !
0
j'ai simplement passé tout mes "ID" de mes calculs en "class" comme dis dans ton précédant post

 $('.saisie_donnees').on('keyup', function() {
    var firstValue  = Number($('.first').val()); 
    var secondValue = Number($('.second').val());
    var mensuelValue = firstValue/secondValue; 
 


 
 if(mensuelValue == Infinity){
  $('.mensualite').html((mensuelValue).toFixed(2));
 }


 else{
 $('.prix').html(firstValue + '<sup>€</sup><span class="decimal">00</span>');
    $('.mensualite').html((mensuelValue).toFixed(2)); 
  $('.second').html(secondValue);
 $('.nb_fois_restant').html(secondValue - 1);
 $('.montant_du').html('<span class="mensualite">'+(firstValue - (mensuelValue)).toFixed(2) + '</span>');
 }

 if(secondValue == ''){
 $('.nb_fois_restant').html("0");
 


  
 }
 


$('.mensualite').each(function () {
    var $this = $(this),
        $val = $this.text(),
        dec_pos = $val.indexOf('.');
    $this.html($val.substring(0, dec_pos) + '<sup>€</sup><span class="decimal">' + $val.substring(dec_pos + 1) + '</span>');
});
 

  if(secondValue == ''){
  $('.mensualite').html('<span>0<sup>€</sup><span class="decimal">00</span></span>')

 }
 


 
     $('.nb_mensualite').click(function(){
         $('.second').val('');
 });
 
 
 
   });
   
///////////////////////////////////////////////////////////////////////////////////////
 $('.first').on('keyup', function() {
$(".prix").html($(this).val());
});

  $('.first').on('keyup', function() {
    var firstValue  = Number($('.first').val()); //  PRIX  
 $('.prix').each(function () {
    var $this = $(this),
        $val = $this.text(),
        dec_pos = $val.indexOf('.');
  if (firstValue == parseInt(firstValue)){
    return $('.prix').html(firstValue + '<sup>€</sup><span class="decimal">00</span>');
   }
  else{
  $this.html($val.substring(0, dec_pos) + '<sup>€</sup><span class="decimal">' + $val.substring(dec_pos + 1) + '</span>');
  }

  });


});
0