Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Extjs如何在没有ajax的情况下提交表单?_Javascript_Ajax_Extjs_Extjs4_Form Submit - Fatal编程技术网

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

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,

你好! 我尝试在没有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'
                    });
                }
            }]
        });

但重定向到其他页面时未发生,我收到错误:
您试图解码无效的JSON字符串
。有人能帮我吗?谢谢大家!

好的,您有两个错误

  • 为什么不重定向(标准提交),以及
  • 为什么你会有“错误解码”
  • 我猜您使用的是extjs4:

    一,。从docsapi。它说
    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作为表单面板的配置,不要将其应用于基本表单或操作。