【问题标题】:I can't append to an existing form using Jquery我无法使用 Jquery 附加到现有表单
【发布时间】:2018-10-09 06:09:35
【问题描述】:

我有一个最初决定使用 div 包装的表单:

<div class="formWrap">
 <input class="desc" name="newdescription[]" value="" />
</div>

我动态添加了一些字段:

newDesc = $('.desc:first').clone();
$(newDesc).appendTo('.formWrap');

到这里为止,一切都像魅力一样工作,但后来我改变了主意,决定将它作为一个表单,因为我不再使用 AJAX,而是将表单提交到下一页。

<form class="formWrap" type="post" action="nextpage.php">
 <!-- Some inputs -->
</form >

一旦我将 div 更改为表单,我就无法再追加了,如果我把它放回 div 就可以了。

我发现的一个解决方案是离开 div 并将所有内容包装到一个表单中。但即使这是一个解决方案,我仍然很好奇为什么我不能让它直接与表单一起工作。

   <form type="post" action="nextpage.php">
   <div class="formWrap">
         <!-- Some inputs -->
   </div>
   </form >

我一直在阅读,我没有发现不能附加到表单的任何限制,所以我现在有点迷失了。有什么想法吗?

【问题讨论】:

  • 工作得很好:jsfiddle.net/uaeh1kjr
  • 试试$('&lt;input name="newdescription[]" value="" /&gt;').appendTo('.formWrap');
  • 我知道!这太疯狂了,我一定遗漏了一些东西,但我发誓我在代码中所做的唯一一件事就是更改表单的 div 并且它停止工作。 :(
  • 另一种方法是追加到表单。 $('.formWrap').append('') 这一切都有效。
  • 请点击&lt;&gt; 并创建一个minimal reproducible example 并使用显示问题的HTML

标签: javascript jquery html forms append


【解决方案1】:

如果有人遇到同样的错误,这可能会有所帮助。 花了一段时间才找到答案,但我发现了错误。我意识到表单在表单中,显然是一个巨大的错误! 我猜 Jquery 会阻止附加到另一个表单内的表单中。

<form>
.
.
.
<form class="formWrap" type="post" action="nextpage.php">
 <!-- Some inputs -->
</form >
.
.
.
</form >

如果你不能追加到一个表单中,很可能它是另一个表单的子表单。 这是一个显示它如何不起作用的小提琴:

https://jsfiddle.net/uaeh1kjr/1/

正如@Eddie 在他的评论中提到的那样,这个有效,只有一种形式:https://jsfiddle.net/uaeh1kjr/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-11
    • 2017-08-03
    • 2020-07-28
    • 2011-12-10
    • 2021-02-11
    • 2011-07-30
    相关资源
    最近更新 更多