将表单从字符串附加到DOM

Append form to DOM from string

本文关键字:DOM 字符串 表单      更新时间:2023-09-26

我的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上是不可接受的,显然

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

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