Changer une partie du nom de class
Bonjour,
Je me tourne vers vous car je fais face à un probléme auquelle je n'arrive pas à trouver de solution simple, que ce soit en JS pur ou avec JQUERY.
J'ai un formulaire que je peux "cloner" pour ajouter d'autres éléments. Pour remettre les erreurs correspondantes au bon clone de formulaire j'ai mis des classes qui s'incrémentent ("error_Assemblage0" en lien avec toutes les classes "Assemblage0_..." pour l'original puis "error_Assemblage1" pour le suivant ,...) à chaque fois que l'on clone le formulaire en cliquant sur le bouton "add".
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <html>
<form>
<div id = "Assemblages">
<input type="hidden" id="nbAss" name="nbAss" />
<!--==== FORM ASSEMBLAGE ORIGINALE ====-->
<div id="assemblage" class="newAssemblage">
<!--Affichage des erreurs-->
<div class="error" id="error_Assemblage0">
<span id="error_Assemblage0_num"> </span>
<span id="error_Assemblage0_duration"> </span>
</div>
<div>
<label> "N° de l'assemblage : "</label>
<input type="text" class="Assemblage0_num" name="numAssemblage[]" value="" onblur="verifNum(this)"/>
<input type="text" class="Assemblage0_duration" name="tRefroid[]" value="" onblur="verifDuration(this)"/>
</div>
</div>
<button type="button" id="btnAddField" >+</button>
</div>
</form>
</html> |
Code:
1 2 3 4 5 6 7 8 9 10 11
| //Clonage du formulaire
$('#formAssemblage').on( 'click', '#btnAddField', function() {
nbAss++;
var $clone = $('#assemblage').clone(true);
$clone.removeAttr('id');//On ne l'aisse l'd que sur l'original pour pouvoir le recopier pour les suivants
$clone.find("input[type='text']").val("");
$clone.appendTo($("#Assemblages"));
$clone.prepend('<button type="button" class="btnRemoveField"> - </button>'); //On ajout un bouton pour pouvoir supprimer l'assemblage
document.getElementById("nbAss").value=nbAss;
affNbAss();
}); |
Le probléme est que quand je clone le formulaire je récupère les classes, j'ai donc pour chaque clone "Assemblage0_..." alors que j'aimerais avoir "Assemblage+nbAss+_...". Mais je ne vois pas comment faire...
Quelqu'un aurait-il une idée?
Merci.