代码之家  ›  专栏  ›  技术社区  ›  Nathan Long

为什么我动态添加的表单输入没有发布?

  •  2
  • Nathan Long  · 技术社区  · 14 年前

    我正在处理一个表单,每当用户单击“更多小工具”按钮时,我需要动态添加输入。表单中有一个隐藏的DIV,我用jquery将输入附加到表单中,如下所示:

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

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

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

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

    在页面上看不到它们,但我给了它们默认值,这次它们 出现在“$\u post”中。

    这让我觉得 div#newwidgetinputs 不被认为是表格的一部分,但我不明白为什么,它在开场和结束之间 <form> 标签。

    为什么不公布这些信息?

    2 回复  |  直到 14 年前
        1
  •  3
  •   Iacopo    14 年前

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

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

    浏览器可以在表单外考虑“其他HTML”,因为 </div> 关闭“DIV_1”DIV,这是表单的容器,因此在第二个之后 </DIV & GT; 浏览器会考虑关闭表单。

        2
  •  0
  •   MANCHUCK    14 年前

    为什么不把所有的元素都填满,然后把它们隐藏起来呢?如果用户单击“添加更多小部件”,则将另一个隐藏字段设置为1。