gpt4 book ai didi

javascript - 从表单中删除输入后提交失败(在 Firefox 中)

转载 作者:行者123 更新时间:2023-11-29 09:55:59 26 4
gpt4 key购买 nike

编辑:我简化了示例以使用文本输入。同样的错误。从表单中删除输入时,表单无法提交。编辑:在 Firefox 14 中重复。Chrome 没有相同的行为。

我有一个带有 jquery 的多文件上传表单,用于在表单中添加和删除文件输入元素。如果我删除其中一个输入,则 form.submit() 函数不会继续。下面是使用“文本”输入的简化代码。和 http://jsfiddle.net/carbontax/rMMuE/ 的 fiddle

    <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();
});

最佳答案

Satya Teja 有一个有用的建议,可以将提交按钮放在表单中,但我不知道为什么会这样。在我的例子中,我需要根据另一个事件的结果间接提交表单。所以这是解决方案。

HTML:在表单中添加一个隐藏的提交按钮

    <form id="form-foo" method="POST">
<div id="input-container-container">
</div>
<!-- workaround to allow submit after deleting a form element -->
<input type="submit" id="form-foo-submit" style="display: none"/>
</form>
<input type="button" id="add-text-input" value="ADD TEXT INPUT">
<input type="button" id="submit" value="SUBMIT">

脚本。不要在表单上调用 submit(),而是在隐藏的提交按钮上调用 click()。适用于 Firefox、Chrome 甚至 IE6

    $('#submit').click(function() {
// Instead of calling $('#form-foo').submit()
$('#form-foo-submit').click();
});

$("#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();
});

关于javascript - 从表单中删除输入后提交失败(在 Firefox 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11582981/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com