jQuery删除()不会删除

问题描述:

我有一个表单,我想允许用户添加任意​​数量的字段,然后将他们给我的信息插入到数据库中。如果有任何未使用的行,可以通过单击删除文本将其删除,以便我的数据库中没有一堆空行。jQuery删除()不会删除

我已经完成了使用jQuery添加行并将数据插入到数据库中,但我努力去除不需要的行。当jQuery运行remove()函数时,它只是给了tr一个显示,使得用户看不到行,但它们仍然存在并在我的数据库中插入空行。有没有办法完全摆脱我的表中的整个行,以便空白的数据不能输入?

这里是我的代码:

HTML:

<table width="960px" border="0" id="entries"> 
<tr> 
    <td><b></b></td> 
    <td><b>Department</b></td> 
    <td><b>Class</b></td> 
    <td><b>Lot #</b></td> 
    <td><b>Short Description</b></td> 
</tr> 

<tr> 
    <td><b>1</b></td> 
    <td class="firstEntry"><input type="text" name="fields[]"></td> 
    <td><input type="text" name="class[]"></td> 
    <td><input type="text" name="lot[]" size="5"></td> 
    <td><input type="text" name="description[]" size="86"></td> 
    <td></td> 
</tr> 

<div id="container"> 
<p id="add_field"><a href="#"><span>Add Entries.....</span></a></p> 

的jQuery:

<script type="text/javascript"> 
var count = 0; 
$(function(){ 
    var count = 1; 
    $('p#add_field').click(function(){ 

     count +=1; 

    $('table#entries').append(
     '<tr><td><strong>' + count + '</strong></td>' + 
     '<td><input id="department_' + count + '" name="fields[]' + '" type="text" /></td>' + 
     '<td><input id="class_' + count + '" name="class[]' + '" type="text" /></td>' + 
     '<td><input id="lot_' + count + '" name="lot[]' + '" type="text" size="5"/></td>' + 
     '<td><input id="description_' + count + '" name="description[]' + '" type="text" size="86"/></td>' + 
     '<td><span class="delete">Remove</span></td></tr>'); 

    $(".delete").click(function() { 
     $(this).closest('tr').remove("slow"); 
    }); 

    }); 



}); 

+2

删除不能采取慢如PARAM。删除是正确的方法,并且如果使用正确,将按照您的要求进行。如果你想定义一个视觉上被删除的速度,尝试使用fadeOut('slow'),然后在它消失后将其删除。 http://api.jquery.com/remove/ – iAmClownShoe 2013-03-20 17:16:48

+0

你必须做两个事件在你的一个淡出部分和一个删除 – mcgrailm 2013-03-20 17:18:18

其作品,未经 “慢”:

$(".delete").click(function() { 
     $(this).closest('tr').remove(); 
    }); 

http://jsfiddle.net/kn3eB/

的参数.remove()是一个选择。你可能会想到需要持续时间的.hide()

+0

我刚刚复制并粘贴jQuery的代码从你的jsfiddle到我的原始和它现在有效。我不确定我的代码中有什么问题,但是它可以工作......非常感谢大家的回答和快速响应! – user2191829 2013-03-20 17:51:29

.remove()不会将动画效果作为参数,只有选择器。也许你会用改变不透明度和显示属性的.fadeOut()来混淆它?

试试这个jsFiddle example

$(this).closest('tr').fadeOut(function() { 
    $(this).remove() 
}); 
+0

感谢您的帮助。我已经删除了缓慢,但它仍然没有显示任何显示。这里是我所得到的屏幕截图... http://cachecounty.org/assets/jquery-remove.PNG – user2191829 2013-03-20 17:29:19