J'ai un contrôle avec 2 zones de texte et une zone de sélection dans une rangée. L'utilisateur peut ajouter ou supprimer n'importe quel ensemble de ces lignes. Je dois le faire en jQuery. Quelqu'un at-il de bons liens pour ce genre de fonction/plugin jQueryRépétition du contrôle dans jQuery
Répondre
J'ai posté un moyen rapide et, assez, sale de le faire sur le jsbin, la JS et CSS est ci-dessous:
JavaScript/jQuery:
$(document).ready(
function() {
$('span.add').live('click',
function() {
var
lastRow = parseInt($('fieldset:last-child').attr('id').slice('1')),
newRow = lastRow+1,
newXhtml = '<label for="inputRow' + newRow + '">Label Text</label> <input type="text" name="inputRow' + newRow + '" id="inputRow' + newRow + '" <label for="selectRow' + newRow + '">Label Text</label> <select name="selectRow'+newRow+' id="selectRow'+newRow+'><optgroup label="something"><option value="thisVal">This Value</option><option value="thatVal">That Value</option></optgroup></select><span class="addDelete"><span class="delete">X</span><span class="add">+</span></span>';
$('form').append('<fieldset id="_' + newRow + '" />');
$('form fieldset:last-child').prepend(newXhtml);
}
);
$('span.delete').live('click',
function() {
if ($('fieldset').length > 1) {
$(this).closest('fieldset').remove();
}
}
);
}
);
CSS:
fieldset {
width: 40em;
margin: 1em auto;
font-size: 0.8em;
}
fieldset input,
fieldset label {
display: inline;
width: auto;
}
span.addDelete {
float: right;
}
span.addDelete span {
border: 1px solid #000;
color: #000;
font-weight: bold;
margin: 0 0.2em 0 0;
}
span.delete {
background-color: #f00;
}
span.add {
background-color: #0f0;
}
Il y a la question relativement importante de la façon dont vous générez laajoutée dynamiquementboîtes, mais je pars que -happily- comme un exercice pour vous, et il ya probablement un moyen plus agréable de générer la variable newXhtml
, mais j'ai choisi de le laisser pour plus de simplicité.
La mise en œuvre actuelle, en raison de l'évaluation if ($('fieldset').length > 1)
empêche l'utilisateur de supprimer tous les fieldsets, mais ne les empêche pas la suppression d'un particulier fieldset. Vous voudrez peut-être vérifier cette approche. Si vous avez des questions, s'il vous plaît n'hésitez pas à demander dans les commentaires et, bien, je ferai de mon mieux =)
- 1. Nested Répétition de contrôle UI
- 2. Multidimensional Répétition de contrôle des données
- 3. Jquery et Fancybox répétition Galerie
- 4. Répétition des éléments du vecteur dans R
- 5. jQuery supprimant la répétition dans plusieurs appels de méthode Colorbox
- 6. FlowDocument Répétition de l'en-tête du tableau
- 7. Répétition du contenu sur la page Web
- 8. Répétition de textures dans OpenGL
- 9. Générer automatiquement des ID d'élément HTML dans Rails lors de la répétition du même contrôle via des partiels
- 10. Répétition du message d'erreur du programme de validation Flex 3.5
- 11. Répétition d'une liste dans Scala
- 12. Problème de contrôle du curseur jquery
- 13. jQuery Draggable() et le contrôle du clavier
- 14. Contrôle du bouton radio w/jQuery
- 15. GridView imbriqué dans le contrôle du répéteur
- 16. Contrôle de la vitesse du vol stationnaire dans jquery
- 17. chargement jQuery dans le contrôle WebBrowser du système de fichiers
- 18. KeyDown et l'événement keyUp pour éviter la lettre de répétition dans le contrôle textbox
- 19. Stop LinearGradientBrush répétition
- 20. contrôle du serveur dans le contrôle du serveur littéral
- 21. Répétition de l'Union Mysql
- 22. Répétition de fond maximale dans Google Chrome?
- 23. Répétition de l'en-tête dans un groupe
- 24. WPF Répétition Question (MVVM)
- 25. Répétition de groupes regex
- 26. Problème de répétition du bloc avec l'implémentation Java XMODEM
- 27. traduction du code: répétition d'une chaîne jusqu'à un maximum
- 28. C# Génériques pour éviter la répétition du code?
- 29. Comment éviter la répétition du traitement des exceptions?
- 30. Répétition d'une commande de navigation dans vi
Vous devriez vérifier cette question: http://stackoverflow.com/questions/171027/jquery- add-table-row – CristiC
Mais gardez à l'esprit des choses comme la sémantique, et utilisez un 'fieldset' s'il y a lieu, plutôt qu'une table-ligne. –