繁体   English   中英

Extjs如何在没有ajax的情况下提交表单?

[英]Extjs how submit form without ajax?

美好的一天! 我尝试在没有ajax的情况下提交extjs表单并在下一页显示结果。 这是我的代码:

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'
                    });
                }
            }]
        });

但重定向到其他页面不会发生,我收到错误: You're trying to decode an invalid JSON String 有谁能够帮我? 谢谢!

好的,所以你有2个错误。

  1. 为什么不重定向(standarssubmit),和
  2. 为什么你有“错误解码”

我猜你正在使用extjs4:

1。 来自docs api。 它说submit()方法是Shortcut to do a submit action 参数是The options to pass to the action (see doAction for details) 所以,将standardSubmit submitsubmit方法并不是正确的方法。 没有standardSubmit选项。 更多信息 myanswer,你有2种替代方式。
首先,使用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'
});
...

2。 错误解码,我不知道你的salary/public/auth什么样的....
尝试我的第一个解决方案,如果错误存在,则表示错误在其他地方......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM