3

良い一日!私は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。誰か助けてもらえますか?ありがとうございました!

4

1 に答える 1

6

わかりました。2つのエラーがあります。

  1. リダイレクト(standarssubmit)してみませんか、
  2. 「エラーデコード」が発生した理由

私はあなたがextjs4を使用していると思います:

1。ドキュメントAPIから。submit()メソッドはですShortcut to do a submit action。パラメータはThe options to pass to the action (see doAction for details)です。したがって、メソッドに入れるstandardSubmitsubmitは正しい方法ではありません。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どのように見えるかわかりません....
私の最初の解決策を試してください、エラーが存在する場合、それはエラーがどこかにあることを意味します...

于 2012-06-06T05:04:33.150 に答える