2012-02-22 66 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