我正在使用jQuery添加表单元素。它显示在页面上,具有正确的值,但是当我提交表单时,数据不会显示在PHP后端。我查看了Firebug的POST数据,我也没有看到它。我用来添加表单元素的javascript是:
$("#projectArray").append("<input type='text' name='data[Project][description]' value='"+projectDescription+"' id='test' />");
有没有人遇到这样的事情?我似乎是其他帖子,但它们似乎是拼写错误,据我所知,我没有任何拼写错误。
修改:根据要求,这是表单代码。我削减了很多,因为它是一个非常大的形式。如果有人想要完整的代码,我可以粘贴它。
<form action="/learningexperiences/add" id="LearningexperienceAddForm" method="post" accept-charset="utf-8">
<div style="display:none;"><input type="hidden" name="_method" value="POST"/></div>
<div class="input text"><tr><td><label for="LearningexperienceSubjectarea">Subject Area</label> </td><td><input name="data[Learningexperience][subjectarea]" maxlength="50" type="text" id="LearningexperienceSubjectarea"/></td></tr>
...
<tr><td>Active</td><td><div class="cbx"><input type="hidden" name="data[Learningexperience][active]" id="LearningexperienceActive_" value="0"/><input type="checkbox" name="data[Learningexperience][active]" checked="checked" value="1" id="LearningexperienceActive"/></div></td></tr>
<tr><td colspan="2" style="vertical-align:middle;"><div id="projectArray"></div></td></tr>
...
<input type="hidden" name="data[Learningexperience][id]" id="LearningexperienceId"/><tr><td colspan="2" style="vertical-align:middle;"> </td></tr>
</table>
<table id="buttonsTable">
<tr><td style="text-align:right;"><div style="margin-right:5px;"><div class="submit"><input name="cancel" type="submit" value="Cancel"/></div></div></td>
<td><div class="submit"><input type="submit" value="Save Record"/></div></form></td></tr>
</table>
编辑2:我将append标记更改为附加到表单元素(#LearningexperienceAddForm)。我不知道为什么,但它开始在那时工作。
答案 0 :(得分:3)
遇到同样的问题时遇到了这个问题。我很确定你需要你的标签放在一切的外面。
类似的东西:
<form>
<table>
[add as many dynamic fields as you want]
</table>
</form>
由于高于我的薪资等级的原因,如果这些标签出现故障,则不会为POSTing选择动态字段...
希望这能让我节省2个小时的费用: - )
答案 1 :(得分:2)
我不打算附加HTML本身,而是建议创建元素,然后附加它:
var input = document.createElement('input');
input.name = 'data[Project][description]';
input.type = 'text';
input.value = projectDescription;
input.id = 'test';
$('#projectArray').append(input);
这样可以更好地将其插入DOM进行访问。
请告诉我这是否适合您。
答案 2 :(得分:2)
我将append标签更改为附加到表单元素(#LearningexperienceAddForm)。我不知道为什么,但它开始在那时工作。
答案 3 :(得分:0)
对于遇到此问题的任何人,只需确保您的结束表单标记包含附加数据。我的表格中有一个太多的关闭div,Google Chrome将其替换为结束标记,所以请注意这一点。
答案 4 :(得分:0)
请检查所有html元素标签 我的意思是在表单之间打开(&lt; ...&gt;)和关闭tag()。 所有人都应该以有管理的方式。