フォームをiframeに投稿しようとしています。私の問題は、iframeを本体にレンダリングするとフォームが正しくポストされるということです。しかし、この問題は、コンテナが私が表示したい場所の代わりにページの下部に表示されていることです。私がrenderToプロパティを使用しないと、私のフォームはiframeに全くポストされません。私がrenderToプロパティを使用しない場合、私のフォームはiframeを見ていないと思うようです。bidyにレンダリングせずにextjsを使用してiframeにフォームを投稿する
は、こちらのフォームポストのために働く私のコードのthatsのですが、コンテナは、ページ
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();