2012-02-20 65 views
1

我阅读有关此主题的许多讨论。 (其中包括“Submit form input fields added with javascript”,终于让我走上了正轨。)但是,他们中没有人完全回答这个问题或者解决了我的问题,所以我想我会提出一个解决方案。动态表单元素/ jQuery的不被张贴

我是想额外的文本输入字段动态地添加到使用jQuery使用此代码我发现了一个表格:

jQuery("#form_table").append(
'<tr><th>'+ 
'<label><b>Date: </b></label></th><td>'+ 
'<input type="text" id="extra_date'+counter+'" />'+ 
'<label><b>Time: </b></label>'+ 
'<input type="text" id="extra_time'+counter+'" /></td></tr>'); 

文本字段添加到表的形式,当我调查了DOM使用萤火虫,他们在那里。但是,当我提交表单时,变量extra_date1/extra_time1不在$ _POST数组中。我发现这个代码并没有将这些元素添加到FORM本身。上面的帖子指出我正确的方向使用JS,而不是jQuery。我试图张贴到表单,因为他们在该帖子中提到,但没有奏效。最终,此代码对我有用:

var theForm = document.getElementById("form_table"); 
var newOption = document.createElement("input"); 
newOption.name = "extra_date"+counter; 
newOption.type = "text"; 
theForm.appendChild(newOption); 
var newOption = document.createElement("input"); 
newOption.name = "extra_time"+counter; 
newOption.type = "text"; 
theForm.appendChild(newOption); 

form_table元素是表单标记中的表标记。与上述文章中的代码不同,我发现您不能将它附加到表单元素本身。它必须是形式中的一个元素。

我知道这看起来很简单,但看起来网上很多人都有这个相同的问题,所以我希望这将是一个简单的答案,像一个像我一样拉着头发的人。

回答

1

你的代码只有id =“”没有name =“”你应该有name =“”这是发布的内容。 。

使用此代码来代替:

jQuery("#form_table").append(
'<tr><th>'+ 
'<label><b>Date: </b></label></th><td>'+ 
'<input type="text" name="extra_date'+counter+'" />'+ 
'<label><b>Time: </b></label>'+ 
'<input type="text" name="extra_time'+counter+'" /></td></tr>');