button.form()未定义

时间:2014-03-26 12:06:10

标签: javascript extjs4.1 extjs-mvc

在该button.up('form')获取错误.getForm()。reset();未定义....

提交功能 - 将用户详细信息发送给服务器 取消按钮 - 它可以重置表格。

//这是登录表单的控制器代码。它包含两个用于提交按钮和事件的事件。取消

Ext.define('Packt.controller.Login',
    { 

        extend: 'Ext.app.Controller',



         views: [
                    'Login' 

                ],


        init: function(application) 
        { 
            this.control({


                "button#submit": { 
                                        click: this.onButtonClickSubmit 
                                 },

                "button#cancel": { 
                                        click: this.onButtonClickCancel 
                                 }
                        });


        },


        // implementation of action to be executed when events happnes


        onButtonClickSubmit: function(button, e, options)
        {
            get login form referance

            var formPanel = button.up('form'),
            login = button.up('login'),
            user = formPanel.down('textfield[name=user]').getValue(),
            pass = formPanel.down('textfield[name=password]').getValue(),

            if (formPanel.getForm().isValid())
            {
                 encryptting password
                    pass = Packt.util.MD5.encode(pass);

                 sending user details to server

                Ext.Ajax.request({
                                    url: 'php/login.php',
                                    params: {
                                                user: user,
                                                password: pass
                                            }
                                });
            }  


        }, 

        onButtonClickCancel: function(button, e, options)
        {
            button.up('form').getForm().reset();
        } 

});

表单的代码:

Ext.define('Packt.view.Login', { 

        extend: 'Ext.window.Window',

        alias: 'widget.login', 

        autoShow: true, 

        height: 170, 

        width: 360, 

layout: {
        type: 'fit' 
        },

        iconCls: '.key', 
        title: 'Login',
        closeAction: 'hide', 
        closable: false ,


items: [
         {
             type: 'form', 
             frame: false, 
             bodyPadding: 15,

defaults: { 
            xtype: 'textfield', 
            anchor: '100%', 
            labelWidth: 60 ,
            allowBlank: false, 
            vtype: 'alphanum', 
            minLength: 3, 
            msgTarget: 'side'
          },

items: [
         {
             name: 'user',
             fieldLabel: 'user',
             maxLength :25              
         },
         {
             inputType: 'password', 
             name: 'password',
             fieldLabel: 'Password',
             maxLength :15,
             enableKeyEvents: true,
             id: 'password'
         }
       ]
         }
         ],


    dockedItems: [
                  {
                      xtype: 'toolbar',
                      dock: 'bottom',

              items: [
                      {
                          xtype: 'tbfill'
                      },
                      {
                          xtype: 'button', 
                          itemId: 'cancel',
                          iconCls: 'cancel',
                          text: 'Cancel'
                      },
                      {
                          xtype: 'button',
                          itemId: 'submit',
                          formBind: true, 
                          iconCls: 'key-go',
                          text: 'Submit'
                      }
                     ]
                  }
                ] 
});

这是app.js的主要代码

Ext.application({

// namespace fr project

name: 'Packt',

/*requires: [
            'Packt.view.Login'
          ],
   views: [
            'Login'
          ],
          */

controllers: [
                'Login'
             ],

     init: function() 
     {
          splashscreen = Ext.getBody().mask('Loading application','splashscreen');
            splashscreen.addCls('splashscreen');

            Ext.DomHelper.insertFirst(Ext.query('.x-mask-msg')[0], {cls: 'x-splash-icon' }); 



            splashscreen.next().fadeOut({
                duration: 1000,
                remove:true,
                listeners: {
                            afteranimate: function(el, startTime, eOpts )
                                { 
                                    Ext.widget('login');
                            }
                            }
           }); 


    }


});

0 个答案:

没有答案