2012-12-09 76 views
1

我有一個表單變量傳遞給我的窗口和記錄從網格/商店填充。以下是代碼:Extjs 4表單提交dom undefined

{ 
    tooltip: 'Edit', 
    handler: function(grid, rowIndex, colIndex){ 
     var rec=grid.getStore().getAt(rowIndex); 
     var edit_app=Ext.create('Ext.Window',{ 
      title: 'Edit Applicant: ' + rec.ge('app_name'), 
      items:[app_form], 
      buttons:[{ 
       text: 'Update', 
       handler:function(){ 
        if(edit_app.down('form').getForm().isValid()){ //or app_form.getForm().isValid(
         edit_app.down('form').getForm().submit({ 
          url: 'api/api.php', 
          waitMsg: '..submitting', 
          success: function(form,actns){ 
           edit_app.hide(); 
          }, 
          failure: function(fomr,actnz){ 
           alert('Error with submission'); 
           edit_app.close(); 
          } 
         }); 
        } 
       } 
      }, { 
       text: 'Close', 
       handler: function(){ 
        edit_app.hide(); 
       } 
      }] 
     }).show(); 

     var form = edit_app.down('form').getForm(); //app_form.getForm() 
     form.loadRecord(rec); 
    } 
} 

當我poulate形式在第一時間,將其提交更新只是fine.However,當我嘗試相同的操作第二次時,我得到了以下訊息話題:

me.getRenderTarget(...)。DOM是未定義

targetNodes = me.getRenderTarget().dom.childNodes, 

我一直在努力google搜索解決方案,但沒有成功到現在。 將不勝感激

回答

0

我認爲這個問題可能是因爲您正在使用「Ext.create」構建一個新的窗口對象,每次調用該處理函數並將該窗體作爲變量引用傳遞時,並在完成表格時使用「隱藏」和「關閉」。這可能會導致很多衝突,因爲Ext嘗試訪問原始對象,並且找不到子對象,這就是您的錯誤的樣子。表單仍然可以與原始對象關聯,或者您的窗口選擇器可以獲取原始窗口,現在不再有窗體。無論哪種方式,Ext的選擇器都很困惑。

要測試這一點,請嘗試移動處理程序外部的Window create,並調用「myWindow.show()」和表單人口代碼。

+0

嗨,那是建議。它已經整理出我的問題......豎起大拇指! –