编辑:我从头开始解决了这个问题。很抱歉浪费你们的时间。如果您愿意,请投票结束。
当通过 javascript 添加输入字段时,我无法获取要提交的表单中的实际数据。字段显示在正确的位置,但是当我在服务器端执行 var_dump(fieldname) 时,没有显示任何内容。检查实时 HTTP header 告诉我浏览器没有尝试提交动态添加的表单字段。
我是否需要以某种方式将动态创建的表单输入“附加”到表单?
我的代码:
HTML
<form id="att_form" method="post" name="add_attachments" enctype="multipart/form-data" action="#">
<-- below input to prove form submits, just not the dyn added elements -->
<input name="data[one]" type="text" />
<div id="add_fields"></div>
<input type="submit" />
</form>
Javascript
function addFormField()
{
var id = 1;
var htm = "<p id='row" + id + "'><input type='text' size='20' name='txt[]' id='txt" + id + "' /></p>";
$("#add_fields".append( htm );
}
当我提交表单时,名为 data[one] 的输入显示为 POSTd 值,但使用 addFormField() 添加的输入不会显示。它们出现在 HTML 中的正确位置,但不发布。我是否需要将该元素作为子元素附加到我的表单元素才能提交?
我看过 Submit form input fields added with javascript这就是我想到将数据专门附加到子表单的想法,但这需要对我的 CSS 进行一些重组。所以,我希望我可以在上面的代码中做一些简单的事情。
提前致谢!
编辑:修复了拼写错误,但仍然无法正常工作。我决定使用上面 SO 链接中讨论的库免费 JS 方法,因为它工作正常。感谢您的帮助!
最佳答案
您的代码中有 2 个拼写错误: htm 而不是 html
和添加字段/添加文件
关于php - 使用javascript动态添加表单元素——不提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1386228/