通过javascript添加的表单字段don';传递数据
没有发现任何类似的问题,我有一个表单,只有一组字段,如果用户单击一个按钮,就会添加更多字段。我使这些字段与第一组字段相同,并对所有字段集使用name='array[]' 无论如何,当我提交表单时,使用javascript生成的字段和原始字段,只传递原始字段集中的值 这是在codeigniter中 我不能传递所有的代码,但是在pastebin中有生成的html,我将粘贴与此问题相关的php/javascript位通过javascript添加的表单字段don';传递数据,javascript,Javascript,没有发现任何类似的问题,我有一个表单,只有一组字段,如果用户单击一个按钮,就会添加更多字段。我使这些字段与第一组字段相同,并对所有字段集使用name='array[]' 无论如何,当我提交表单时,使用javascript生成的字段和原始字段,只传递原始字段集中的值 这是在codeigniter中 我不能传递所有的代码,但是在pastebin中有生成的html,我将粘贴与此问题相关的php/javascript位 <tr id="add_dependents"> <td
<tr id="add_dependents">
<td class="tim-dependents-table-cell">
<?php $data = array('class' => 'tim-dependents-table-contents', 'name' => 'dependent_names[]', 'id' => 'dependent_names_1', 'value' => $dep_names[0]);
echo form_input($data);
?>
</td>
<td>
<?php $data = array('class' => 'tim-dependents-table-contents', 'name' => 'dependent_ssns[]', 'id' => 'dependent_ssns_1', 'value' => $dep_ssns[0]);
echo form_input($data);
?>
</td>
<td>
<?php $data = array('class' => 'tim-dependents-table-contents', 'type' => 'date', 'name' => 'dependent_dobs[]', 'id' => 'dependent_dobs_1', 'value' => $dep_dobs[0]);
echo form_input($data);
?>
</td>
<td>
<a href="#" class="red"><i class="fa fa-trash"></i></a>
</td>
</tr>
问题就在页面上,在它到达控制器之前。提交页面的有效负载包括“永久”字段集,但不包括javascript生成字段中的任何数据
应该发生的是,通过javascript创建的字段应该与数据一起提交,就像“永久”字段集一样。好吧,我知道了。我以某种方式嵌套了开始表单标记,一些div元素在它之前打开,在它之后关闭 换句话说,我有:
<div>
<form action="" etc>
</div>
</form>
我将表单标签移到页面的更高位置,如下所示:
<form action="" etc>
<div>
</div>
</form>
有趣的是,除了javascript字段,整个过程都在运行。我将删除PHP和codeigniter,因为这是一个直接的javascript问题,我希望一些专家能够解释
很高兴它现在起作用了,但我仍然不知道更深层次的“为什么”
感谢试图提供帮助的评论者。表单是如何提交的?我不能肯定这是问题的原因,但元素ID必须是唯一的。您每次都使用相同的ID创建表单字段。“通过javascript创建的字段不传递数据。”您如何确认这一点?您是否正在浏览器的网络检查器中查看发布的数据?我建议按我说的做。查看立柱的有效载荷。这将告诉您这些字段是否已发布。若是,那个么这不是表单的问题,而是您在服务器上处理数据的问题。您确定添加的元素包含在表单中吗?我是说,放在。。。
<div>
<form action="" etc>
</div>
</form>
<form action="" etc>
<div>
</div>
</form>