添加

2011-03-24 38 views
0

後刪除表單中的輸入時出現問題,因此我已經成功添加了一個新的輸入點擊按鈕。但是現在我希望能夠刪除最後一個添加點擊一個新的按鈕,然後還具有重置按鈕。添加

這是我的代碼,我意識到現在只是先刪除提交按鈕,顯然我不想要。

這裏是我的JavaScript代碼段:(注IVE包括appendTo(),用於演示的div我成功地追加到)

$(function() { 
var i = $('input').size('#temp') + 1; 
$('a#add').click(function() { 
    $('<input type="text" value="user' + i + '" />').appendTo('#temp'); 
    i++; 
}); 
$('a#remove').click(function() { 
if(i > 3) { 
    $('input:last').remove(); 
    i--; 
} 
}); 

千恩萬謝,

回答

0

你試過:

$("a#remove").click(function() { 
    if(i > 3) { 
     $("input[type='text']").last().remove(); 
     i--; 
    } 
}); 

這將選擇type =「text」的輸入,取最後一個並將其刪除。

+0

不工作:( – buymypies 2011-03-24 15:46:39

+0

'$( '輸入[類型= 「文本」]:最後的')。remove()方法;'非常感謝,讓我在正確的軌道上 – buymypies 2011-03-24 15:48:19

+0

我很高興我能幫到;) – Sylvain 2011-03-24 15:51:29

3

您的腳本將從頁面中刪除最後一個輸入,而不是從temp中最後一個輸入。也許你會從你的頁面中刪除另一個輸入。

試試這個:

$('a#remove').click(function() { 
    if(i > 3) { 
     $('#temp input:last').remove(); 
     i--; 
    } 
}); 

編輯:

你只關閉$('a#remove').click()事件處理程序,而不是匿名函數。這可能是複製/粘貼錯誤,但也可能是代碼中的問題。

編輯2:

要刪除所有,但原來,我會建議保持到所有已加入輸入的參考,因爲這減少了需要遍歷DOM每個刪除。所以,做這樣的事情(此代碼未被測試或驗證):

$(function() { 
    var addedInputs = []; 
    $('a#add').click(function() { 
     var newInput = $('<input type="text" value="user' + i + '" ">').appendTo('#temp'); 
     addedInputs.push(newInput); 
    }); 

    $('a#remove').click(function() { 
     var inputToRemove = addedInputs.pop(); 
     inputToRemove.remove(); 
    }); 

    $('a#clear').click(function() { 
     var i, 
      inputToRemove; 
     for(i = addedInputs.length - 1;i >= 0; i -=1) { 
      inputToRemove = addedInputs[i]; 
      inputToRemove.remove(); 
     } 
     addedInputs = []; 
    }); 
}); 
+0

是的,謝謝!如果我想要重置表單。所以刪除原來的所有內容,很容易? – buymypies 2011-03-24 15:52:17