編輯:我簡化了示例使用文本輸入。同樣的錯誤。從表單中刪除輸入時,表單無法提交。 編輯:在Firefox 14中複製。Chrome沒有相同的行爲。提交失敗輸入從表單中刪除(在Firefox中)
我有一個多文件上傳的形式與jQuery的添加和從表單中刪除文件輸入元素。如果我刪除其中一個輸入,則form.submit()函數不會繼續。以下是使用「文本」輸入的簡化代碼。而在http://jsfiddle.net/carbontax/rMMuE/
<form id="form-foo" method="POST">
<div id="input-container-container">
</div>
</form>
<input type="button" id="add-text-input" value="ADD TEXT INPUT">
<input type="button" id="submit" value="SUBMIT">
腳本小提琴
$('#submit').click(function() {
$('#form-foo').submit();
});
$("#add-text-input").click(function() {
var div = $('<div/>', {
'class': 'input-container'
}).append($('<button/>', {
'class': 'delete-text-input',
html: "X"
}));
var input = $('<input/>', {
type: 'text',
name: 'texts',
'class': 'input-text'
}).appendTo(div);
div.appendTo($('#input-container-container'));
});
$('#form-foo').on('click', 'button.delete-text-input', function(e) {
e.preventDefault();
$(this).closest('div').remove();
});
您是否檢查JS錯誤?如果您要從表單中刪除元素,但不刪除任何專門處理這些元素的JS代碼,則最終可能會出現一堆錯誤。 – 2012-07-20 16:03:21
沒有錯誤。根據jquery文檔。 $ .remove()從DOM中刪除所有處理程序以及HTML。 – carbontax 2012-07-20 16:17:01