2016-08-14 65 views
0

我想發佈表單到iframe。我的問題是,當我將iframe渲染到正文時,我的表單發佈得很好。但問題在於容器顯示在頁面的底部,而不是我希望顯示的位置。如果我不使用renderTo屬性,我的表單根本不會發布到iframe。在我不使用renderTo屬性的情況下,我覺得我的表單甚至沒有看到iframe。發佈表單到iframe與extjs沒有呈現bidy

這裏是我的代碼多數民衆贊成表單提交工作,但容器下落一路頁面

var myContainer = Ext.create('Ext.form.FieldSet', { 
      title: "my frame container", 
      labelWidth: 1, 
      bodyStyle: "padding-right:15px;padding-left:25px;", 
      renderTo: Ext.getBody(), 
      items: [ 
       { 
        xtype: 'box', 
        autoEl: { 
         tag: 'iframe', 
         name: 'myIframe', 
         id: 'myIframe' 
        } 
       } 
      ] 
     }); 

$('myform').submit(); 

這得到提交表單,但面板下降到頁面底部的底部。我怎樣才能保持它的位置,並能夠發佈到它。 再次,如果我把這部分出來renderTo: Ext.getBody()然後窗體永遠不會張貼到iframe。

我不知道是否有辦法渲染到特定的div可能是?不知道這是否會起作用。

EDITED

我試着這樣做

renderTo: 'X板'

ext-all.js Uncaught TypeError: Cannot read property 'dom' of null 

**完整代碼表單提交**

var f = document.createElement("form"); 
f.setAttribute('method',"post"); 
f.setAttribute('name',"checkout-form"); 
f.setAttribute('id',"checkout-form"); 
f.setAttribute('target',"myIframe"); 
f.setAttribute('action',"http://example.com"); 
var formFields = [ 
    'field1', 
    'field2', 
    field3' 
]; 
    for (var i = 0; i < formFields.length; i++){ 
     var formFieldName = 'formFieldName'+i; 
     formFieldName = document.createElement("input"); 
     formFieldName.type = "text"; 
     formFieldName.name = formFields[i]; 
     f.appendChild(formFieldName); 
    } 

var myContainer = Ext.create('Ext.form.FieldSet', { 
    title: "my title", 
    labelWidth: 1, 
    bodyStyle: "padding-right:15px;padding-left:25px;", 
    //renderTo: Ext.getBody(), 
    renderTo: Ext.getElementById("myId"), 
    items: [ 
     { 
      xtype: 'box', 
      autoEl: { 
       tag: 'iframe', 
       name: 'myIframe', 
       id: 'myIframe', 

      }, 
      listeners: { 
       load: { 
        element: 'el', 
        fn: function() { 
         console.log("iframe loaded"); 
         $('iframe#component-9808').css('border','0'); 

        } 
       } 
      } 
     } 
    ] 
}); 

$("body").append(f); 
$('#checkout-form').submit(); 

回答

0

也許您可以嘗試發送您的表單數據,如下所示:

Ext.create(Ext.form.Panel).submit({ 
     clientValidation: false, 
     method: 'GET', 
     params: { 
      // Your params like: 
      id: myId 
     }, 
     standardSubmit: true, 
     target: '_blank', 
     url: 'your/url' 
    }); 
0
var formFields = [ 
    'field1', 
    'field2', 
    field3' 
]; 

你有一個'失蹤也有... Wacthout!