Javascript Extjs如何在没有ajax的情况下提交表单?
你好! 我尝试在没有ajax的情况下提交extjs表单,并在下一页显示结果。这是我的代码:Javascript Extjs如何在没有ajax的情况下提交表单?,javascript,ajax,extjs,extjs4,form-submit,Javascript,Ajax,Extjs,Extjs4,Form Submit,你好! 我尝试在没有ajax的情况下提交extjs表单,并在下一页显示结果。这是我的代码: Ext.define('test.from', { extend: 'Ext.form.Panel', alias: 'widget.test.form', initComponent: function () { var me = this; Ext.apply(this, { frame: true,
Ext.define('test.from', {
extend: 'Ext.form.Panel',
alias: 'widget.test.form',
initComponent: function () {
var me = this;
Ext.apply(this, {
frame: true,
bodyPadding: 7,
border: 0,
items: [{
xtype: 'textfield',
fieldLabel: 'First Name',
name: 'contact_attr'
}, {
xtype: 'textfield',
fieldLabel: 'Last Name',
name: 'contact_attr'
}],
buttons: [{
text: 'Send',
handler: function () {
me.getForm().submit({
url: '/salary/public/auth/',
standardSubmit: true,
method: 'POST'
});
}
}]
});
但重定向到其他页面时未发生,我收到错误:
您试图解码无效的JSON字符串
。有人能帮我吗?谢谢大家! 好的,您有两个错误
submit()
方法是执行提交操作的快捷方式。参数是传递给操作的选项(有关详细信息,请参见doAction)
。因此,将standardcommit
放入submit
方法不是正确的方法。没有标准提交选项。我的答案是,你有两种选择。
首先,使用init:
Ext.apply(this,{
standardSubmit:true, // not working...
frame: true,
bodyPadding: 7,
.......
编辑:
.......
me.getForm().standardSubmit=true; //just like OP comment
me.getForm().submit({
url: '/salary/public/auth/',
standardSubmit: true,
method: 'POST'
});
.......
第二,使用doAction:
...
me.getForm().doAction('standardsubmit',{
url: '/salary/public/auth/',
standardSubmit: true,
method: 'POST'
});
...
二,。错误解码,我不知道你的salary/public/auth
是什么样子……
尝试我的第一个解决方案,如果存在错误,这意味着错误在其他地方…可能会发布无效的json,以及生成itHello的代码!谢谢你的回答!您的第一个解决方案不起作用,但第二个解决方案效果很好。昨天我还发现了一个决定:var form=me.getForm();form.url='/salary/public/auth';form.standardSubmit=true;form.method='POST';表单提交()代码>谢谢你的帮助!使用standardSubmit作为表单面板的配置,不要将其应用于基本表单或操作。