2012-08-13 11 views
6

私が持っているコードを提出する:ExtJSに - フォーム

win = desktop.createWindow({ 
    id: 'admin-win', 
    title: 'Add administration users', 
    width: 740, 
    height: 480, 
    iconCls: 'icon-grid', 
    animCollapse: false, 
    constrainHeader: true, 
    xtype: 'form', 
    bodyPadding: 15, 
    url: 'save-form.php', 
    items: [{ 
     xtype: 'textfield', 
     fieldLabel: 'Field', 
     name: 'theField' 
    }], 

    buttons: [{ 
     text: 'Submit', 
     handler: function() { 
      var form = this.up('form').getForm(); 
      if (form.isValid()) { 
       form.submit({ 
        success: function (form, action) { 
         Ext.Msg.alert('Success', action.result.message); 
        }, 
        failure: function (form, action) { 
         Ext.Msg.alert('Failed', action.result ? action.result.message : 'No response'); 
        } 
       }); 
      } 
     } 
    }] 
}); 

とボタンが動作しません。エラーを生成する - this.up( 'form')は未定義です。どのように私はそのようなコードでgetForm()を呼び出すことができますか?

更新日: 本当にすばやい返信をありがとう! 私は私のニーズのためのあなたのコードを変更し、これはそれをであり、それはデスクトップの例で動作します:

win = desktop.createWindow({ 
    id: 'admin-win', 
    title: 'Add administration users', 
    width: 740, 
    iconCls: 'icon-grid', 
    animCollapse: false, 
    constrainHeader: true, 
    items: [{ 
     xtype: 'form', 
     bodyPadding: 15, 
     url: 'save-form.php', 
     items: [{ 
      xtype: 'textfield', 
      fieldLabel: 'Field', 
      name: 'theField' 
     }], 

     buttons: [{ 
      text: 'Submit', 
      handler: function() { 
       var form = this.up('form').getForm(); 
       if (form.isValid()) { 
        this.up().up().submit({ 
         success: function (form, action) { 
          Ext.Msg.alert('Success', action.result.message); 
         }, 
         failure: function (form, action) { 
          Ext.Msg.alert('Failed', action.result ? action.result.message : 'No response'); 
         } 
        }); 
       } 
      } 
     }] 
    }] 
}); 
+0

、これはあなたの完全なコードですか?どのようなdesktop.createWindowは何ですか?私はあなたがウィンドウをクレテットしようとしているが、Ext.form.Panelオプションを使用しているように見えるので、これを求めています。 – davidbuzatto

+0

これはExtJSデスクトップの例に基づいています。私はフォームだけでウィンドウを作成したい。 –

+0

あなたはこのコードをコピー/ペーストしますか? – davidbuzatto

答えて

5

私はすでに言ったように、あなたがあなたのコードに問題があるようです。 Ext.window.WindowにExt.form.Panelオプションを渡しています(呼び出すメソッドの名前なので、これを仮定します)。私はあなたのためのウィンドウを備えた例を書いています。ちょっとまってください。

準備ができました。見てみましょう:

Ext.create('Ext.window.Window', { 
    title: 'This is a Window with a Form', 
    height: 200, 
    width: 400, 
    layout: 'fit', 
    items: [{ // the form is an item of the window 
     id: 'admin-win', 
     title: 'Add administration users', 
     width: 740, 
     height: 480, 
     iconCls: 'icon-grid', 
     animCollapse: false, 
     constrainHeader: true, 
     xtype: 'form', 
     bodyPadding: 15, 
     url: 'save-form.php', 
     items: [{ 
      xtype: 'textfield', 
      fieldLabel: 'Field', 
      name: 'theField', 
      allowBlank: false 
     }], 
     buttons: [{ 
      text: 'Submit', 
      handler: function() { 
       var form = this.up('form').getForm(); 
       if (form.isValid()) { 
        form.submit({ 
         success: function(form, action) { 
          Ext.Msg.alert('Success', action.result.message); 
         }, 
         failure: function(form, action) { 
          Ext.Msg.alert('Failed', action.result ? action.result.message : 'No response'); 
         } 
        }); 
       } else { 
        Ext.Msg.alert("Error!", "Your form is invalid!"); 
       } 
      } 
     }] 
    }] 
}).show(); 

jsFiddle:http://jsfiddle.net/davidbuzatto/vWmmD/

+0

ありがとう:-)私は私のトピックのために答える権限を持っていないので、私の最初の投稿を更新しました;-)私のニーズに合わせてコードを修正しなければなりません。 –

+0

あなたは大歓迎です!私が言ったように、あなたはExt.form.Panelオプションを実際にExt.window.Windowに渡していました:) ExtJSはとてもいいです。非常に完全であるため、そのドキュメントを見てください。 – davidbuzatto

関連する問題