2012-02-22 63 views
0

我Mootools的功能得到一个JSON对象,它是在字符串格式追加形式DOM从字符串

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表单有没有办法将字符串响应转换成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显然

+0

你可以用Request.HTML做到这一点 - 听起来像你通过JSON属性发送HTML代替。没有勺子。 – 2012-02-22 12:52:33

+0

谢谢Dimitar我需要它是一个JSON对象,因为我从服务器端获得其他东西以及 – Shakur 2012-02-22 13:02:11

回答

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'); 
+0

感谢Idiqual我不认为这是问题 – Shakur 2012-02-22 12:57:34