【发布时间】:2009-09-06 17:43:33
【问题描述】:
编辑:我从头开始解决了这个问题。很抱歉浪费大家的时间。如果您愿意,请投票关闭。
当通过 javascript 添加输入字段时,我无法在表单中获取要提交的实际数据。字段显示在正确的位置,但是当我在服务器端执行 var_dump(fieldname) 时,什么都没有显示。检查实时 HTTP 标头告诉我浏览器没有尝试提交动态添加的表单字段。
我是否需要以某种方式将动态创建的表单输入“附加”到表单?
我的代码:
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 方法,因为它工作正常。不过感谢您的帮助!
【问题讨论】:
-
如果您将 html 附加到表单的命名-
fieldset-child 上,它是否有效? -
不确定,但我尽量不卡在这个实例上。它会进入一些非常丑陋的html。没有时间尝试所有很棒的建议,但感谢大家的帮助!关闭问题。
标签: php javascript jquery html