jQuery新添加的输入未提交

时间:2012-07-01 23:02:22

标签: jquery

我有很多PHP生成的输入字段。一旦我用jQuery添加新字段,如果它们是空的,则不会提交。然而,即使它们是空的,也会发送静态的。

我该如何解决这个问题?

CODE:

<form id="sendform" action="pdf.php" method="post">
<input type="text" name="to1" />
<input type="text" name="to2" />
<input type="text" name="to3" />
<input type="submit" value="send" />
</form>

现在jQuery部分是:

var clone = $('input[name="to2"]').clone();
$(clone).attr('name', 'to4');
$('#sendform').append(clone);

截图: This is what I see through DOM inspector This is what I see in the headers when submitted

你可以看到Note1,Note2,Note3,Note4。我动态添加了Note2。您可以从屏幕截图中看到它在dom中,但是没有发送(是的,输入了数据)。

总之,问题出现在表格中的 元素中(<table><form>)。当 成为表格的父级(<form><table>)时 - 一切正常。

2 个答案:

答案 0 :(得分:4)

如果有人再遇到同样的问题 - 原因可能很简单:格式错误的DOM。 这可能会导致正确的视觉呈现,但在提交时无法正确处理表单输入

如果你有f.e。:

[form]
    [div]

    [div]
  [div] <!-- redundant closing div -->
[/form]

可能无法发送新附加的表单字段。 检查Firefox中的页面源 - 红色提示标签可以帮助您

答案 1 :(得分:2)

按预期正常工作:

var clone = $('input[name="to2"]').clone();
$(clone).attr('name', 'to4');
$('#sendform').append(clone);

$('#sendform').submit(function() {
    $('div').text($(this).serialize());
    return false;
});​

Live DEMO