为什么我的动态添加表单输入不是?

时间:2010-06-18 13:11:07

标签: php jquery

我正在处理一个表单,我需要在用户单击“更多小部件”按钮时动态添加输入。表单中有一个隐藏的div,我用jQuery将输入附加到它,如下所示:

$('div#newwidgetinputs').show().append(newInputs);

它们显示,正确命名等,但是当我发布表单时,它们的内容不在PHP $_POST数组中。

所以我尝试将它们附加到表单本身:

$('form#someform').append(newInputs);

在页面上看不到它们,但是我给它们默认值,这次它们出现在'$ _POST'中。

这让我觉得div#newwidgetinputs不被认为是形式的一部分,但我不明白为什么;它位于开始和结束<form>标签之间。

为什么这些输入不会发布?

2 个答案:

答案 0 :(得分:3)

如果HTML格式不正确,浏览器可能会认为动态输入不在表单之内;例如:

<div id="div_1">
<form>
  <div id="div2">
  ... some HTML here
  </div></div>
  ... other HTML here
</form>

浏览器可以在表单之外考虑“其他HTML”,因为第二个</div>关闭了'#div_1'div,即表单的容器,因此在第二个{{1}之后浏览器认为表单要关闭。

答案 1 :(得分:0)

为什么不填写所有元素并将它们隐藏起来?如果用户点击添加更多小部件,则将另一个隐藏字段设置为1。