Перезагрузить DOM после введения элементов формы? - PullRequest
2 голосов
/ 08 февраля 2010

Я пытаюсь собрать некоторый код 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 ]

3 голосов
/ 08 февраля 2010

Это не вопрос добавления дополнительных элементов в форму.

Необходимо убедиться, что входные элементы (будь то флажки или что-то еще) добавляются (загружаются в вашем случае) либо к самому элементу формы, либо к дочернему элементу формы. Кроме того, вы проверили атрибут имени входа? Без имени вход не будет опубликован.

Кстати: что делает ajaxSubmit?

0 голосов
/ 08 февраля 2010

Скорее всего, ваша проблема в том, что элемент "someDivID" не является потомком / потомком "MyFormID" и, следовательно, не публикуется.

Убедитесь, что div, в который вы загружаете элементы управления формой, находится внутри формы.

Если это не поможет, рассмотрите возможность размещения соответствующей части вашего HTML-кода для дальнейшей помощи.

0 голосов
/ 08 февраля 2010

Установите Firebug и посмотрите, где размещены элементы ввода в документе. Если они не находятся внутри блока формы, они не будут отправлены. (И, как говорит aefxx, если им не дают имен, они не появятся в HTTP-запросе.)

...