Je commence par ce balisage:Annexer plusieurs éléments à l'aide jQuery
<div>
<span>
<label for="Item[0]">Item #1</label>
<input type="text" value="" name="Item" id="Item[0]"/>
</span>
</div>
Sur chaque cliquez sur le bouton Je veux ajouter une autre section exactement comme celle ci-dessus mais avec un indice incrémentée.
<div>
<span>
<label for="Item[0]">Item #1</label>
<input type="text" value="" name="Item" id="Item[0]"/>
</span>
</div>
<div>
<span>
<label for="Item[1]">Item #2</label>
<input type="text" value="" name="Item" id="Item[1]"/>
</span>
</div>
Je suis en train d'utiliser ce javascript:
$(document).ready(function(){
var count = <%= Items.Count - 1 %>;
$('#AddItem').click(function(e) {
e.preventDefault();
count++;
var tb = $('#Item[0]').clone().attr('id', 'Item[' + count + ']');
var label = document.createElement('label')
label.setAttribute('For', 'Item[' + count + ']')
$('#ItemFields').append(label);
$('#ItemFields').append(tb);
});
});
donc quelques questions:
Concaténer les œuvres d'étiquettes, mais mon clone textbox ne fonctionne pas.
L'étiquette n'a pas de texte. Je n'arrive pas à trouver la propriété pour ça. Quelqu'un peut-il me dire ce que c'est?
Je n'arrive pas à comprendre comment envelopper l'étiquette et la zone de texte ensemble dans un div et span. Si j'essaie
$('#ItemFields').append('<div><span>' + label + tb + '</span></div>');
il génère [objet HTMLLabelElement] au lieu de l'étiquette réelle. Si j'essaie de les diviser en plusieurs instructions append, il se termine automatiquement par div et span. Je suis nouveau à jQuery/Javascript, donc je ne suis pas sûr de ce que je fais mal.
Cela fonctionne très bien, sauf que le nombre ne s'incrémente pas. – Brandon
Oups, rien à faire. Utilisé un identifiant au lieu d'une classe sur la div. Fonctionne bien maintenant. Merci. – Brandon
Oui, le nombre est le nombre d'élément avec la classe 'item'. –