我的问题是我创建了一个基本上像模式窗体对话框的jQuery演示的页面,除了在你添加了你想要的所有行之后,它将在最后提交它们。 之所以我不只是AJAX这个工作在创建行的地方工作它们是因为表单包含从PHP和PHP创建的动态行。 SQL链接到使用模态表单添加的行,并且在添加完所有行后需要处理。
表单页面有一堆使用PHP从1到X创建的行。
<table>
<form action="submitform.php" method="POST">
<input type="hidden" name="order" value="X">
<tr><td><input type="text" name="1" value=""</td></tr>
<div id="1"></div>
<tr><td><input type="text" name="2" value=""</td></tr>
<div id="2"></div>
<tr><td><input type="text" name="3" value=""</td></tr>
<div id="3"></div>
...
...
<tr><td><input type="text" name="X" value=""</td></tr>
<div id="X"></div>
</table>
更改文本字段后,弹出窗口会询问更多信息,然后在已更改的文本框下方添加行。
当弹出窗口完成时,上面的<DIV>
标签使用jQuery填充额外的表单元素。
itemHiddenInfo = "<input type='hidden' name='"+temp2+"A"+x+"' value='"+itemNum+"_"+itemID+"'/>";
$( "#"+itemDiv ).append("<tr id='"+temp2+"_"+x+"R' class='"+temp2+"'>" +
"<td>" + itemHiddenInfo + itemMat + "</td>" +
"<td>" + itemQty + "</td>" +
"<td>" + itemNote + "</td>" +
"<td>" + "<button id='"+temp2+"_"+x+"' class='remmy'onclick=$('#'+this.id+'R').remove()>REMOVE</button>" + "</td>"+ "</tr>");
一切看起来都很棒,当他们想到并使用Firefox开发工具时,行会出现和消失,我可以看到DOM已被修改为包含我添加的所有元素,但是当我尝试提交时使用“SUBMIT”按钮或通过jQuery AJAX和.sequence()
来收集表单元素,这两种方式都不会识别<DIV>
中添加的任何新表单元素。
页面上用于显示模态表单的<DIV>
是使用另一个PHP文件动态生成的,该文件使用$.get
方法填充,结果填充表单<DIV>
。填写此表单的字段确实已提交,这就是为什么添加的其他字段看起来很奇怪。
我已经四处寻找,似乎我正在做正确的事,但它不想合作。 我是在尝试做一些不可能的事情,还是我在这里遗漏了什么?
非常感谢任何帮助。