2013-03-20 149 views
2

我有一個表單,我想允許用戶添加任意​​數量的字段,然後將他們給我的信息插入到數據庫中。如果有任何未使用的行,可以通過單擊刪除文本將其刪除,以便我的數據庫中沒有一堆空行。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

回答

2

其作品,未經 「慢」:

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

http://jsfiddle.net/kn3eB/

的參數.remove()是一個選擇。你可能會想到需要持續時間的.hide()

+0

我剛剛複製並粘貼jQuery的代碼從你的jsfiddle到我的原始和它現在有效。我不確定我的代碼中有什麼問題,但是它可以工作......非常感謝大家的回答和快速響應! – user2191829 2013-03-20 17:51:29

2

.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