2012-02-20 59 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>');