3

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

我应该如何解决这个问题?

代码:

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

截图: 这是我通过 DOM 检查器看到的 这是我在提交时在标题中看到的

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

解决方案 总之,问题出在放置在 table( <table><form>) 内的元素。什么时候成为 table( <form><table>) 的父级 - 一切正常。

4

2 回答 2

4

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

如果你有 fe:

[form]
    [div]

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

可能不会发送新附加的表单字段。检查 Firefox 中的页面源 - 红色提示标签可能对您有所帮助

于 2014-01-09T15:56:18.167 回答
2

按预期工作正常:

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

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

现场演示

于 2012-07-01T23:25:12.503 回答