2016-08-14 39 views
0

iframe에 양식을 게시하려고합니다. 내 문제는 iframe을 본문에 렌더링 할 때 내 양식이 올바르게 게시된다는 것입니다. 하지만이 문제는 컨테이너를 표시하려는 장소 대신 페이지 하단에 컨테이너가 표시된다는 것입니다. renderTo 속성을 사용하지 않으면 내 양식이 iframe에 전혀 게시되지 않습니다. 거의 renderTo 속성을 사용하지 않는 경우, 내 양식에 iframe이 보이지 않는다고 생각합니다.양식을 bidy로 렌더링하지 않고 extjs로 iframe에 게시

여기에 양식 게시물에 대한 작업 내 코드 먹으 렴하지만 컨테이너는 페이지

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에 렌더링하는 방법이 있는지 궁금합니다. 그것도 잘 작동하는지 확실하지 않습니다.

편집을 할

나는이

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!