Je suis sûr d'avoir déjà vu des exemples auparavant, mais je n'arrive pas à les trouver. J'ai une page qui a 5 boutons. Je voudrais que chaque bouton charge un formulaire différent, sans actualiser. Je pourrais utiliser UpdatePanels, mais cela semble excessif pour cela (et coûteuse en bande passante). Je voudrais charger tous les formulaires en une seule fois, de sorte que le fait de cliquer sur les boutons cache essentiellement les formulaires pertinents. Je ne peux pas faire cela en utilisant la méthode html()
(en l'état) car les formulaires peuvent être assez compliqués et contenir des contrôles ASP.NET qui postback sur le serveur. Au lieu de cela, j'ai mis les formes en individuel divs
.JQuery - ajouter/supprimer des formes et divs
J'ai essayé de faire quelque chose comme ceci:
case "button1":
$(".current_form").show();
$("#divForm1").prependTo($('.current_form'));
break;
case "button2":
$(".current_form").show();
$("#divForm2").prependTo($('.current_form'));
break;
Le problème est que l'ancienne forme reste toujours là, au lieu d'être remplacé. Est-il possible de joindre un div
à un conteneur donné dans JQuery? Ou y a-t-il une autre méthode qui pourrait être meilleure?
Merci pour toute aide
code complet
<script type="text/javascript">
$(document).ready(function() {
$("button").button();
$("button").click(function() {
switch ($(this).attr("value")) {
case "button1":
$('.current_form').empty().show();
$("#divForm1").clone().prependTo($('.current_form'));
break;
case "button2":
$('.current_form').empty().show();
$("#divForm2").clone().prependTo($('.current_form'));
break;
}
return false; //prevent postback
});
});
</script>
Je teste avec ces divs:
<div class="current_form">
<div id="divForm1" >
This is div 1
</div>
</div>
<div class="current_form">
<div id="divForm2" >
This is div 2
</div>
</div>
Merci pour la réponse. J'ai essayé la méthode, et je pense que je suis un peu plus proche. L'arrière-plan de 'current_form' apparaît, mais il est vide. Si je supprime la méthode 'empty()', les formulaires s'affichent, mais ils continuent à y ajouter au lieu de les remplacer. – XSL
@superexsl - Cela ne devrait pas se produire, peut-être un saut manquant quelque part, pouvez-vous poster le code complet? –
Salut Nick, j'ai mis à jour le poste avec un peu plus de code. – XSL