2013-05-01 139 views
0

嘿,我正在嘗試使用可添加和可移動字段創建表單頁面。 「添加字段」按鈕工作正常,但「刪除字段」不起作用。任何人都知道爲什麼?在表單上添加/刪除字段

HTML

<div id="email"> 
<div>Primary Email: 
<input type="text" name="email" length="40" /> 
</div> 
</div> 
<a href="#" onclick="return false;" id="addField">Add New Field</a> 

JQuery的

$(document).ready(function() { 
var i = 1; 
$("#addField").click(function() { 
var targetDiv = $(this).prev('div'); 
$('<div>Pretend this is a text box <a href="#" id="rem" >Remove Field</a></div>').appendTo(targetDiv); 
i++; 
}); 

$('#rem').click(function() { 
$(this).closest('div').remove(); 
}); 

}); 

謝謝!

+3

這是不好的做法(並可能失敗),如果您要添加具有相同ID,它看起來像你必須做的潛力多個元素。 – Marc 2013-05-01 03:05:05

回答

2

注:ID必須是唯一的,因此,而不是使用rem作爲ID使用它作爲一類

因此改變

$('<div>Pretend this is a text box <a href="#" id="rem" >Remove Field</a></div>').appendTo(targetDiv); 

$('<div>Pretend this is a text box <a href="#" class="rem" >Remove Field</a></div>').appendTo(targetDiv); 

然後因爲你正在使用動態添加控件使用事件委託模型.on()

$(document).on('click','.rem', function() { 
    $(this).closest('div').remove(); 
}); 

演示:Fiddle

+0

@CodyGuldner是你有沒有聽說過事件代表團和動態元素 – 2013-05-01 03:06:17

+0

+1來抵消誰是你的......這是答案是正確的 – bruchowski 2013-05-01 03:09:19

+0

@CodyGuldner如果你仔細看看解決方案,我犯了一個錯誤'$(body )'而不是'$(document)',我創建了一個演示 – 2013-05-01 03:09:29