Multi clone calcul jquery

Signaler
-
 Coffy -
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");

});

2 réponses

Messages postés
27304
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 janvier 2020
2024
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 .
merci j'ai bien passer les "ID" en "class" mais après "clonage" les calculs ne se font pas dans le nouveau "formulaire"
Messages postés
27304
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 janvier 2020
2024
Tu as changé quoi et comment ?

Sans nous montrer l'intégralité de ton code il ne nous sera pas possible de t'aider !
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>');
  }

  });


});