ExtJS 4.2.1不使用standardSubmit提交表单
我正在尝试通过post方法提交表单,该方法使用extjs 4.2.1中的standardSubmit在新窗口中打开url getFields函数中的ext-all-debug.js引发错误ExtJS 4.2.1不使用standardSubmit提交表单,extjs,extjs4.2,Extjs,Extjs4.2,我正在尝试通过post方法提交表单,该方法使用extjs 4.2.1中的standardSubmit在新窗口中打开url getFields函数中的ext-all-debug.js引发错误 getFields: function() { return this.monitor.getItems(); }, 未捕获的TypeError:无法调用null的方法“getItems” 此处,监视器对象显示为空 单击链接将打开一个包含表单的消息窗口。单击“是”时,必须在打开新窗口的情况下提交表单
getFields: function() {
return this.monitor.getItems();
},
未捕获的TypeError:无法调用null的方法“getItems”
此处,监视器对象显示为空
单击链接将打开一个包含表单的消息窗口。单击“是”时,必须在打开新窗口的情况下提交表单
我的表格是:
initComponent: function() {
var me = this;
Ext.applyIf(me, {
items: [
{
xtype: 'form',
flex: 1,
itemId: 'importForm',
layout: {
align: 'center',
type: 'vbox'
},
bodyPadding: 20,
standardSubmit: true,
items: [
{
xtype: 'hiddenfield',
itemId: 'user_id',
fieldLabel: 'Label',
name: 'user_id'
},
{
xtype: 'label',
itemId: 'formLabel',
padding: 5,
text: 'My Label'
},
{
xtype: 'container',
margin: '10 0 0 0',
layout: {
align: 'middle',
pack: 'center',
type: 'hbox'
},
items: [
{
xtype: 'button',
itemId: 'btnImport',
margin: '20 0 0 0',
width: 75,
text: 'Yes'
},
{
xtype: 'button',
cls: 'btn-no',
itemId: 'btnCancel',
margin: '0 0 0 10',
width: 75,
text: 'No'
}]
}]
}]
});
提交表格的代码为:
me.form.getForm().doAction('standardsubmit',{
target : '_blank',
method : 'POST',
standardSubmit:true,
url : 'http://www.mysite.com'
});
Extjs 4.1.3中的代码完全相同,但在4.2.1中显示错误
这是错误还是我的代码有问题?找到了错误的原因。表单提交下面的代码有一个关闭窗口的语句,该语句引发了异常
me.form.getForm().doAction('standardsubmit',{
target : '_blank',
method : 'POST',
standardSubmit:true,
url : 'http://www.mysite.com'
});
me.abstractcomponent.close(); <----- THIS CAUSED THE ERROR
希望它对其他人也有用 找到了错误的原因。表单提交下面的代码有一个关闭窗口的语句,该语句引发了异常
me.form.getForm().doAction('standardsubmit',{
target : '_blank',
method : 'POST',
standardSubmit:true,
url : 'http://www.mysite.com'
});
me.abstractcomponent.close(); <----- THIS CAUSED THE ERROR
希望它对其他人也有用 这有助于确定问题。问题是表单对象在异步请求启动之前被销毁。处理此问题的更好方法是添加请求处理程序,以便在返回响应后立即销毁表单
form.submit({
success: function(form, action) {
yourcomponent.close();//or destroy();
},
failure: function(form, action) {
yourcomponent.close();//or destroy();
}
});
这有助于确定问题。问题是表单对象在异步请求启动之前被销毁。处理此问题的更好方法是添加请求处理程序,以便在返回响应后立即销毁表单
form.submit({
success: function(form, action) {
yourcomponent.close();//or destroy();
},
failure: function(form, action) {
yourcomponent.close();//or destroy();
}
});
您尝试过常规formPanel.submit方法吗?您尝试过常规formPanel.submit方法吗?