我正在写一个表单,其中包含更改选择列表时动态加载的一些文本输入元素。
问题是,当我提交表单时,那些元素不会在发布到服务器的数据中发送。
我需要做什么才能使那些动态创建的元素“进入”要提交的表单?
代码是这样的:
$("#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是:
<input id="my-form_e_1" class="number-input" type="text"/> <input id="my-form_e_2" class="number-input" type="text"/>
而且,如果我在调用ajax方法后使用firebug来查看页面,则动态加载的html就在应具有的层次结构中,即形式正确。
但是,当我单击“提交”按钮时,只有ajax调用之前存在的表单元素才会发布。
有任何想法吗?
您的问题似乎是动态添加的输入元素没有name属性。name如果希望输入元素的值包含在提交的数据中,则输入元素需要属性。
name