从string中将表单附加到DOM

时间:2012-02-22 12:25:57

标签: javascript dom mootools

我的Mootools函数获取一个JSON对象,它是一个字符串格式的html表单

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元素

修改

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 :(得分:0)

在将表单插入DOM后,您必须选择该表单:

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

var form = div.getElement('form');
form.fireEvent('submit');