注入表单元素后重新加载DOM?
Posted
技术标签:
【中文标题】注入表单元素后重新加载DOM?【英文标题】:Reload DOM after injecting form elements? 【发布时间】:2011-01-14 04:24:34 【问题描述】:我正在尝试将一些 jQuery 代码放在一起,一旦用户执行某个操作,它们就会将表单元素(输入复选框)添加到表单中。稍后用户可以提交此表单。
我对 jQuery 完全陌生,但我已经设法将一些几乎可以工作的代码放在一起。这是我得到的:
$("#someDivID").load("myPage.asp?id=x");
myPage.asp 生成一些表单元素,这些都很好地显示在页面上。
但是,一旦我提交(通过 POST)表单,新的表单元素实际上并没有发布。这是表单提交功能:
$(document).ready(function()
var options = ;
// bind to the form's submit event
$('#MyFormID').submit(function()
$(this).ajaxSubmit(options);
return false;
);
);
如果我完全错了,请原谅我,但我猜这是因为新的表单元素是在最初加载 DOM 之后生成的。我是否必须重新加载 DOM(如果需要怎么做?),还是应该以不同的方式做整个事情?
最好的问候, 亚当
【问题讨论】:
【参考方案1】:这不是在表单中添加更多元素的问题。
您需要确保将输入元素(无论是复选框还是其他)附加(在您的情况下加载)到表单元素本身或表单的子元素。此外,您是否检查了输入的名称属性?如果没有名称,输入将不会被发布。
顺便说一句:ajaxSubmit 是做什么的?
【讨论】:
ajaxSubmit 是我认为需要的 jQuery 表单插件的一部分。但是,您的回答使我朝着正确的方向前进。表单和输入元素愚蠢地放置在同级 div 元素中,因此在将表单包裹在输入元素周围之后,现在一切正常。非常感谢! 只是为了澄清。标记看起来像这样:安装 Firebug 并查看输入元素在文档中的放置位置。如果它们不在表单块内,则不会被提交。 (正如 aefxx 所说,如果没有给它们命名,它们就不会出现在 HTTP 请求中。)
【讨论】:
【参考方案3】:您的问题很可能是“someDivID”元素不是“MyFormID”的子/后代,因此未发布。
确保加载表单控件的 div 放置在表单内。
如果这没有帮助,请考虑发布您的 html 的相关部分以获得进一步的帮助。
【讨论】:
以上是关于注入表单元素后重新加载DOM?的主要内容,如果未能解决你的问题,请参考以下文章