JQuery Ajax表单和动态创建的表单元素不提交

我正在编写一个表单,当更改选择列表时,它会动态加载一些文本输入元素。

问题是,当我提交表单时,这些元素不会发布到发布到服务器的数据中。

我需要做些什么才能将这些动态创建的元素“整合”到要提交的表单中?

代码是这样的:

$("#my_select_id").change(function() { $.ajax({ type: "GET", url: "some-url/" + $("#played_number_game_id").children("option:selected").val(), async: false, dataType: "html", error: function(XMLHttpRequest, status, errorThrown) { alert("oh no!"); alert(status); }, success: function (data, status) { $("#parent-element").html(""); $("#parent-element").append(data); }, complete: function() { } }); $("#my_form_submit").click(function() { $("#my-form").ajaxSubmit({ clearForm: true }); return false; }); }); 

ajax调用返回的html是:

   

如果我在调用ajax方法后使用firebug查看页面,动态加载的html就在层次结构中,它应该是…即它在表单中。

但是,当我单击提交按钮时,只会发布在ajax调用之前存在的表单元素。

有任何想法吗?

您的问题似乎是动态添加的输入元素没有name属性。 如果要将其值包含在提交的数据中,则输入元素需要name属性。

这很简单,只需将表单元素附加到body标签并将其样式设置为’display:none’