Javascript CodeIgniter重新加载时动态复制的表单消失

Javascript CodeIgniter重新加载时动态复制的表单消失,javascript,jquery,codeigniter,dynamicform,Javascript,Jquery,Codeigniter,Dynamicform,我有以下代码需要复制: <form method="post"> <div id="field-row-container"> <div id="field-row-1" class="field-row"> <div class="field-element"> <label for="Name[1]">Name</label> <input t

我有以下代码需要复制:

<form method="post">
<div id="field-row-container">
    <div id="field-row-1" class="field-row">
        <div class="field-element">
            <label for="Name[1]">Name</label>
            <input type="text" id="Name[1]" name="Name[]" />
        </div>
        <div class="field-element">
            <label for="Email[1]">Email</label>
            <input type="text" id="Email[1]" name="Email[]" />
        </div>
        <hr/>
    </div>
</div>
<div class="form-element">
    <input type="button" class="confirm add-field-row" value="Add" />
    <input type="button" class="danger delete-field-row" value="Delete" />
    <input type="submit" />
</div>
每当我向CodeIgniter提交表单时,如果出现验证错误,一旦控制器重新加载多部分表单,动态添加的元素以及初始字段中的值就会消失

我该如何解决这个问题?我不知道如何解决这个问题

可能有帮助的其他注意事项:

  • 这是一个只有一个表单控制器的组件多部分表单
  • 我有很多这样的例子——地址、学历等等
  • 我使用CodeIgniter的
    表单验证
    库来检查服务器端的每个帖子数组

  • 当表单打开的页面在验证失败后控制器重定向回它后重新加载时,它将只重新加载原始页面,而不应用DOM操作

    我将执行POST请求,通过ajax提交表单,这样您就可以在不离开页面的情况下处理响应。大概是这样的:

    $.post('/locationOfController.php', $('#yourForm').serialize(), function(response){
      if(response.valid){
        window.location.href = '/somewhereAfterFormPosted.php';
      } else {
        $('#yourForm').append("<p>"+response.error+"</p>");
      }
    }, 'json');
    

    作为一个基本的例子,试试这样的例子。您可以做更多的工作,例如,如果多个字段无效,则返回多个错误。

    感谢您提供的启发性答案。我现在就试试!你知道一篇关于这个主题的可靠文章吗?我不使用CodeIgniter,所以我只能提供Google搜索带来的内容,但这可能很有用:--它似乎向你展示了如何以数组的形式返回表单错误,你可以以JSON的形式返回表单错误。在ajax成功函数中,如果您设置了命名约定,允许您将每个错误与其字段进行匹配,则可以循环遍历数组并将每个错误附加到相关输入字段之后。非常感谢您的提醒。我现在正在努力。
    $.post('/locationOfController.php', $('#yourForm').serialize(), function(response){
      if(response.valid){
        window.location.href = '/somewhereAfterFormPosted.php';
      } else {
        $('#yourForm').append("<p>"+response.error+"</p>");
      }
    }, 'json');
    
    {valid: false, error: 'Please fill out the whole form'}