我需要以旧方式提交Ext.form.Panel实例,没有任何AJAX内容。我找到了一些使用standardSubmit: true
参数的解决方案。我这样用它:
Ext.define('MyForm', {
id: 'myform',
extend: 'Ext.form.Panel',
url: '/some/url/'
standardSubmit: true,
...
buttons: {
...
handler: function () {
Ext.getCmp('myform').getForm().submit();
}
}
})
点击提交按钮会导致No URL specified
错误。我尝试在submit
方法中传递不同的参数组合,但我得到的是很多奇怪的错误。有人可以分享一个有效的例子吗?
答案 0 :(得分:2)
这里是Ext.form.Panel的文档
如果继承FormPanel,则必须将BasicForm的任何配置选项应用于FormPanel的initialConfig属性
到目前为止,上面列出的代码应该如下所示
Ext.define('MyForm', {
extend: 'Ext.form.Panel',
...
initComponent: function() {
var me = this
Ext.apply(me.initialConfig, {
url: '/some/url',
standardSubmit: true,
method: 'GET'
})
...
me.buttons = {
...
text: 'Submit',
handler: function () {
me.getForm().submit();
}
}
me.callParent()
}
})
绝对不明显。但它解决了这个问题。
答案 1 :(得分:0)
有效!我已经找了差不多一个星期了! Radagast的代码有效!没有其他代码,但ext-407-gpl。
var login_form = Ext.create('Ext.form.Panel', {
frame:true,
title: '<?php echo $this->escape($this->message); ?>',
url: '<?php echo $this->baseUrl ?>/auth/login',
standardSubmit: true,
bodyStyle:'padding:5px 5px 0',
width: 350,
fieldDefaults: {
msgTarget: 'side',
labelWidth: 75
},
defaultType: 'textfield',
defaults: {
anchor: '100%'
},
items: [{
fieldLabel: 'login',
name: 'login_id',
allowBlank:false
},{
fieldLabel: 'password',
name: 'passwd',
inputType: 'password'
}],
buttons: [{
text: 'submit',
type: 'submit',
handler: function() { this.up('form').getForm().submit(); }
}, {
text: 'reset',
type: 'reset',
handler: function() { this.up('form').getForm().reset(); }
}]
});