2011-08-15 17 views
0

ボタンをクリックしたときにフォームを送信しようとしていますが、私は思ったほどシンプルではありませんでした。送信ハンドラはExtJsのドキュメントから直接取りますが、関数ではありません。送信ボタンをクリックしたときに送信するフォームを取得する

Players.panel.Subscription = function(config) { 
    config = config || {}; 
    Ext.apply(config,{ 
     border: false 
     ,baseCls: 'modx-formpanel' 
     ,process: 'mgr/player/getSubscribers' 
     ,standardSubmit: true 
     ,url: Players.config.connectorUrl 
     ,baseParams: { action: 'mgr/player/getSubscribers' } 
     ,buttons: [{ 
        text: 'Export er' 
        ,formBind: true 
        ,type: 'submit' 
        ,handler: function(){ 


          var fp = this.ownerCt.ownerCt, 
           form = fp.getForm(); 
          if (form.isValid()) { 
           // check if there are baseParams and if 
           // hiddent items have been added already 
           if (fp.baseParams && !fp.paramsAdded) { 
            // add hidden items for all baseParams 
            for (i in fp.baseParams) { 
             fp.add({ 
              xtype: 'hidden', 
              name: i, 
              value: fp.baseParams[i] 
             }); 
            } 
            fp.doLayout(); 
            // set a custom flag to prevent re-adding 
            fp.paramsAdded = true; 
           } 
           form.submit(); 
          } 

       } 
       }] 

    }); 
    Players.panel.Subscription.superclass.constructor.call(this,config); 

}; 

また、私はありません成功しMODxの-formpanelにformpanelbasicformから基本クラスを置き換えてみました。

ありがとうございました

答えて

0

フォームパネルがないためです。これを試してみてください:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<link rel="stylesheet" type="text/css" href="./ext/resources/css/ext-all.css" /> 
<script type="text/javascript" src="./ext/bootstrap.js"></script> 
</head> 
<body> 
<script> 
Ext.ns('Players.panel'); 
Ext.onReady(function() { 
    Players.panel.Subscription = Ext.extend(Ext.form.Panel, { 
    constructor : function(config) { 
     config = Ext.apply({ 
      border: false 
      ,baseCls: 'modx-formpanel' 
      ,process: 'mgr/player/getSubscribers' 
      ,standardSubmit: true 
      ,url: '-' 
      ,baseParams: { action: 'mgr/player/getSubscribers' } 
      ,buttons: [{ 
         text: 'Export er' 
         ,formBind: true 
         ,type: 'submit' 
         ,handler: function(){ 


           var fp = this.ownerCt.ownerCt, 
            form = fp.getForm(); 
           if (form.isValid()) { 
            // check if there are baseParams and if 
            // hiddent items have been added already 
            if (fp.baseParams && !fp.paramsAdded) { 
             // add hidden items for all baseParams 
             for (i in fp.baseParams) { 
              fp.add({ 
               xtype: 'hidden', 
               name: i, 
               value: fp.baseParams[i] 
              }); 
             } 
             fp.doLayout(); 
             // set a custom flag to prevent re-adding 
             fp.paramsAdded = true; 
            } 
            form.submit(); 
           } 

        } 
        }] 
     }, config); 
     Players.panel.Subscription.superclass.constructor.call(this,config); 
    } 
    }); 

    var f = Ext.create(Players.panel.Subscription, {id:'formPanel', renderTo: Ext.getBody()});; 
}); 
</script> 
</body> 
</html> 
+0

ましたCLSは cls.xtype = XTYPE [このエラーのブレーク]未定義です。私は定義されていません [このエラーで中断] window.attefined = window.undefined; Ext = ... window.attachEvent( "onunload"、a)}})(); –

+0

私は自分のコードを更新します(フルバージョンを追加してください)。それを試してみてください。わたしにはできる。 –

+0

確かに、urlをexistableに変更する必要があります。 –

関連する問題