Javascript 从字符串向DOM追加表单

Javascript 从字符串向DOM追加表单,javascript,dom,mootools,Javascript,Dom,Mootools,My 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);

My 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..
警报(r.form)//打印表单好吗
$('my_div').set('html',r.form);
警报($('my_div').innerHTML)//打印不带标签的表单。。
只有铬

修复


在我尝试将一个表单插入到另一个表单中的div中之后,Chrome显然不接受这一点。

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

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

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

您可以使用Request.HTML来实现这一点——听起来像是通过JSON属性发送HTML。没有勺子。谢谢Dimitar,我需要它是一个json对象,因为我也从服务器端获得了其他东西。谢谢Idiqual,我认为这不是问题所在