chained.js et sélecteur dynamique
Bonjour,
je suis novice en Jquery et je n'arrive pas à résoudre mon problème malgré de nombreuses recherches ...
Mon code fonctionne partiellement, l'enchainement des mes sélecteur avec le plugin chained.js fonctionne uniquement sur ma deuxième série de sélecteur ...
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Form</title>
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/global.css" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/chained.min.js" type="text/javascript" charset="utf-8"></script>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<form class="form-inline" method="post" action="">
<div id="global-aliment">
<div class="row">
<div class="col-md-4">
<div id="global-type-aliment">
<select id="type_aliment-1" name="type_aliment-1" class="type_aliment form-control">
<option value="">--</option>
<option value="viande" class="viande">Viande</option>
<option value="poisson" class="poisson">Poisson</option>
<option value="feculent" class="feculent">Féculents</option>
<option value="legume" class="legume">Légume</option>
</select>
</div>
</div>
<div class="col-md-4">
<div id="global-name-aliment">
<select id="name_aliment-1" name="name_aliment-1" class="name_aliment form-control">
<option value="">--</option>
<option value="dinde" class="viande">Dinde</option>
<option value="boeuf" class="viande">Boeuf</option>
<option value="porc" class="viande">Porc</option>
<option value="collin" class="poisson">Collin</option>
<option value="riz" class="feculent">Riz</option>
<option value="patte" class="feculent">Patte</option>
<option value="patate_douce" class="feculent">Patates douces</option>
<option value="boulgour" class="feculent">Boulgour</option>
<option value="haricot" class="legume">Haricot</option>
<option value="choux" class="legume">Choux</option>
</select>
</div>
</div>
<div class="col-md-4">
<div id="global-qte">
<input id="qte-1" name="qte-1" type="text" class="form-control" placeholder="Quantité">
</div>
</div>
</div><!-- END ROW -->
</div>
<input class="btn btn-default" id="add_aliment" type="button" value="Ajouter un aliment"/>
<input class="btn btn default" type="submit" value="Calculer" />
</form>
</div> <!-- END CONTAINER -->
<script type="text/javascript">
$(document).ready(function(){
$('#add_aliment').click(function(){
//Ajoute du selecteur n°1
var a = $("#global-type-aliment select:last").clone();
//Incremente le name
var name = $(a).attr('name');
value = name.split('-');
name = value[0]+'-'+(parseInt(value[1])+1);
$(a).attr('name', name);
//Incremente l'id de +1
var id = $(a).attr('id');
value = id.split('-');
id = value[0]+'-'+(parseInt(value[1])+1);
$(a).attr('id', id);
//Insert le select
$("#global-type-aliment").append(a);
//Ajoute du selecteur n°2
var c = $("#global-name-aliment select:last").clone();
//Incremente le name
var name = $(c).attr('name');
value = name.split('-');
name = value[0]+'-'+(parseInt(value[1])+1);
$(c).attr('name', name);
//Incremente l'id
var id = $(c).attr('id');
value = id.split('-');
id = value[0]+'-'+(parseInt(value[1])+1);
$(c).attr('id', id);
//Insert le select
$("#global-name-aliment").append(c);
//Ajout de l'input
var d = $("#global-qte input:last").clone();
//Incremente le name
var name = $(d).attr('name');
value = name.split('-');
name = value[0]+'-'+(parseInt(value[1])+1);
$(d).attr('name', name);
//Incremente l'id
var id = $(d).attr('id');
value = id.split('-');
id = value[0]+'-'+(parseInt(value[1])+1);
$(d).attr('id', id);
//Insert
$("#global-qte").append(d);
//Enchainement des selecteur
var idA = $(a).attr('id');
var idC = $(c).attr('id');
$('#' + idC).chained('#' + idA);
});
});
</script>
</body>
</html> |
Si quelqu'un à une solution pour me débloquer ca serait vraiment super et je le remercie par avance.