2

我正在尝试将一些 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(如果需要怎么做?),还是应该以不同的方式做整个事情?

最好的问候,亚当

4

3 回答 3

3

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

您需要确保将输入元素(无论是复选框还是其他)附加(在您的情况下加载)到表单元素本身或表单的子元素。此外,您是否检查了输入的名称属性?没有名称,输入将不会被发布。

顺便说一句:ajaxSubmit 是做什么的?

于 2010-02-07T22:10:47.093 回答
0

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

于 2010-02-07T23:12:57.577 回答
0

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

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

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

于 2010-02-07T23:18:07.017 回答