Добавить форму в DOM из строки - PullRequest
0 голосов
/ 22 февраля 2012

Моя функция Mootools получает объект JSON, который представляет собой HTML-форму в формате String

var req = new Request.JSON({
    method: 'post',
    url: 'index.php',
    onSuccess: function(r) {

        if (typeof(r)!='undefined' && r!=null)
        {
            $('my_div').set('html',r.form);
        }
    });

Есть ли способ преобразовать строковый ответ в элемент HTML, чтобы позже я смог сделать:

document.myForm.submit();

Я знаю, что могу анализировать каждый элемент формы и создавать элементы DOM один за другим, но есть ли более простой способ просто преобразовать форму из строки в правильный элемент DOM?

Удивительно, но приведенный выше код работает в FF и IE, но не работает в Chrome, когда я пытаюсь отправить форму с

Uncaught TypeError: Cannot call method 'submit' of null

, поскольку строка не преобразована в фактический элемент DOM

EDIT

alert(r.form); //Prints the form OK
$('my_div').set('html',r.form);
alert($('my_div').innerHTML); //Prints the form without the <form> tags..

Только в Chrome!

FIX

после того, как я пытался вставить форму в div, которая была внутри другой формы, это, по-видимому, не принято в Chrome

1 Ответ

0 голосов
/ 22 февраля 2012

Вам нужно будет выбрать форму после того, как вы вставили ее в DOM:

var div = $('my_div');
if (typeof(r)!='undefined' && r!=null) {
  div.set('html',r.form);
}

var form = div.getElement('form');
form.fireEvent('submit');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...