2009-11-19 5 views
0

J'ai un élément de formulaire qui doit être supprimé lorsqu'un bouton à côté de l'élément est cliqué.Supprimer un élément de formulaire sélectionné

$('#btnDel').click(function() { 

     var num = $('#input').prevAll().size(); 
     $('#form div:nth-child('+ num +')').remove(); 

     } 

Cela ne semble pas fonctionner! Toute aide est très appreciée. Je pense que je suis juste confondu avec la sélection de l'élément droit ...

EDIT: avec un balisage comme demandé:

<div id="form"> 
<form name="create" method="post" action="create.php"> 

    <input type="hidden" id="id" value="1"> 

    <label for="title">Title</label> 
    <input name="myusername" type="text" id="myusername"><br /><br /> 
    <div id="input" class="clonedInput"> 
     Question: <input type="text" name="question" id="question" /> 
     <input type="button" id="btnDel" value="Remove question" /> 
    </div> 
    <div> 
     <input type="button" id="btnAdd" value="Add another question" /> 
    </div> 
    <input type="submit" name="submit" value="Create survey"> 

</form> 

</div> 
+0

pourrait vraiment aider si vous nous avez montré ce que la balise html pour le formulaire est :) –

+0

oui, nous avons besoin de balisage. – David

Répondre

0

Le #btnDel indique que vous abordez un bouton avec l'id = btnDel. Si tel est le cas, il ne devrait y avoir qu'un seul bouton car chaque identifiant doit être unique. S'il n'y a qu'un seul bouton, il ne doit y avoir qu'un seul élément à côté de celui-ci. Sinon, vous pouvez utiliser la partie événement de la fonction click pour capturer event.target et travailler par rapport à celle-ci pour supprimer la cible.

$(".btnDel").click(function(e){$(this).parent().remove()}); 
0

D'abord, vous aurez besoin de plusieurs boutons de suppression afin de leur donner une classe, pas un identifiant class="btnDel" puis utilisez ce code:

$(".btnDel").click(function(){ 
    $(this).closest("div").remove() 
}) 
+0

Fonctionne bien, mais seulement pour la première div? – Tom

0

J'ai abordé ce problème dans votre other question sur la suppression d'un élément et changer le compte. Ce dont vous avez besoin est un bouton "Ajouter une question" et un bouton "Supprimer la question" pour chaque question. Ensuite, chaque question et le bouton "Supprimer la question" doivent être assignés à une classe et non à un ID!

Vous pouvez utiliser le code que j'ai posté (et l'exemple de travail) dans l'autre question, mais essentiellement vous devez utiliser la requête en direct sur le bouton Supprimer car il est ajouté dynamiquement.

HTML

<div id="input" class="clonedInput"> 
Question: <input type="text" name="question" class="question" /> 
<input type="button" class="btnDel" value="Remove question" /> 
</div> 

Script

$('.btnDel').live('click',function(){ 
$(this).parent().remove(); 
}) 
Questions connexes