2011-07-22 66 views
1

我有一個表格動態生成的選擇字段和選項從PHP(所有選擇相同)。 「添加」按鈕正在工作,但「刪除」按鈕無法正常工作,它不會刪除所有內容,並且如果再次添加,則會降至理想位置以下。動態刪除div中的選擇表單域與從php獲取的數據

這是我的代碼:

<script type="text/javascript"> 
//<![CDATA[ 
$(function(){ 
var counter = 1; 

$("#addButton").click(function() { 

if(counter>10){ 
     alert("Only 10 textboxes allow"); 
     return false; 
} 

var select = $('<select>').attr({id:'select'+counter,name:'select'+counter}); 

$.ajax({ 
url: 'selects.php', 
dataType: "html", 
success: function(data) { 
select.html(data); 
} 
});   

select.appendTo("#TextBoxesGroup"); 
$("#TextBoxesGroup > select").wrap (function() { 
return '<div id="wrap_' + this.id + '"></div>'; 
}); 
counter++; 
}); 

$("#removeButton").click(function() { 
if(counter==1){ 
     alert("No more textbox to remove"); 
     return false; 
} 

counter--; 

    $("#wrap_" + counter).remove(); 
    $("#select" + counter).remove(); 

}); 

}); 
//]]> 
</script> 

<div id='TextBoxesGroup'> 
<div id="TextBoxDiv1"> 
    <label>Textbox #1 : </label><input type='text' id='textbox1' > 
</div> 
<div id="TextBoxDiv2"> 
    <label>Textbox #2 : </label><input type='text' id='textbox2' > 
</div> 
</div> 
<input type='button' value='Add Button' id='addButton'> 
<input type='button' value='Remove Button' id='removeButton'> 

這是select.php生成的HTML代碼:

<option value="1">Uno</option> 
<option value="2">Dos</option> 
<option value="3">Tres</option> 
<option value="4">Cuatro</option> 

回答

0

至於另2名回答說,這個問題是:

$("#wrap_" + counter).remove(); 

將其更改爲:

$("#wrap_select" + counter).remove(); 

要匹配總結DIV是如何創建的。

See it in action at jsFiddle.

1

問題IDS這樣當您返回

return '<div id="wrap_' + this.id + '"></div>' 

this.id是select的編號

但是當你刪除

$("#wrap_" + counter).remove(); 

嘗試通過

$("#wrap_select" + counter).remove(); 

刪除,因爲你的div的ID是

wrap_select+'some value' not wrap_+'some value' 
0

的選擇得到了ID 'select'+counter和包裝獲得ID 'wrap_' + this.idthis.id是,如果我不是太累了早晨,不像櫃檯一樣。

而且因爲你這樣做

$("#wrap_" + counter).remove(); 
$("#select" + counter).remove(); 

你不去除包裝。


+0

正確描述了問題,但沒有添加修復程序! –

+0

@Brock Adams,當然,但在這種情況下,我認爲如何糾正它是相當清楚的。 – joakimdahlstrom

+0

是的,這對你我很清楚,但並非所有的讀者都在那個時候。只是說......一條缺失的線路可能會讓你付票。 –

相關問題