注入表单元素后重新加载DOM?

时间:2010-02-07 22:03:53

标签: jquery dom forms dynamic reload

我正在尝试将一些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(如果是这样的话?),还是应该以不同的方式完成整个过程?

祝你好运, 亚当

3 个答案:

答案 0 :(得分:3)

这不是在表单中添加更多元素的问题。

您需要确保将输入元素(可以是复选框或其他内容)附加(在您的案例中加载)到表单元素本身或表单的子元素。此外,你检查输入的名称属性?没有名称,输入将不会被发布。

BTW:ajaxSubmit做了什么?

答案 1 :(得分:0)

安装Firebug并查看输入元素在文档中的放置位置。如果它们不在表单块内,则不会提交。 (正如aefxx所说,如果他们没有给出名字,他们就不会出现在HTTP请求中。)

答案 2 :(得分:0)

最有可能的问题是“someDivID”元素不是“MyFormID”的子/后代,因此不会发布。

确保加载表单控件的div放在表单中。

如果这没有帮助,请考虑发布相关的HTML部分以便进一步协助。