2011-09-20 85 views
0

我正在使用sencha的應用程序在哪裏我有一個登錄屏幕與兩個按鈕退出並提交。在這裏,我正在努力處理事件。另外我有兩個處理兩個按鈕。但是,我怎樣才能從文本字段中獲取文本?我如何發起服務器請求。任何幫助,高度讚賞。如何處理事件並在sencha中啓動服務器請求?

Ext.setup({ 
    icon: 'icon.png', 
    tabletStartupScreen: 'tablet_startup.png', 
    phoneStartupScreen: 'phone_startup.png', 
    glossOnIcon: false, 

    onReady: function() { 

     var form; 

     var formBase = { 
      scroll : 'vertical',    
      standardSubmit : false, 
      items: [ 
       { 
        xtype: 'fieldset', 
        title: 'Login Screen', 
        instructions: 'Enter agent number and password to login.', 
        defaults: { 
         required: true, 
         labelAlign: 'left', 
         labelWidth: '45%' 
        }, 
        items: [ 
        { 
         xtype: 'textfield', 
         name : 'username', 
         label: 'Agent Number', 
         useClearIcon: true 
        }, { 
         xtype: 'passwordfield', 
         name : 'password', 
         label: 'Password', 
         useClearIcon: false 
        }] 
       }], 
      listeners : { 
       submit : function(form, result){ 
        console.log('success', Ext.toArray(arguments)); 
       }, 
       exception : function(form, result){ 
        console.log('failure', result); 
       } 
      }, 

      dockedItems: [ 
       { 
        xtype: 'toolbar', 
        dock: 'bottom', 
        items: [ 
         { 
          text: 'Login', 
          ui: 'confirm', 
          handler: function() { 
            alert('Login please wait..'); 
          } 
         }, 
         { 
          text: 'Exit', 
          ui: 'exit', 
          handler: function() { 
            alert('Are you sure ?');        
          } 
         } 
        ] 
       } 
      ] 
     }; 

     if (Ext.is.Phone) { 
      formBase.fullscreen = true; 
     } else { 
      Ext.apply(formBase, { 
       autoRender: true, 
       floating: true, 
       modal: true, 
       centered: true, 
       hideOnMaskTap: false, 
       height: 385, 
       width: 480 
      }); 
     } 

     form = new Ext.form.FormPanel(formBase); 
     form.show(); 
    } 
}); 
+0

你可以用'分機。 Msg.alert'而不是'alert'。同樣對於登錄請等待警報嘗試使用'from.setLoading(true)'。 – ilija139

回答

1

要從文本字段獲取值,請使用form.getValues();。提出請求的使用:

Ext.Ajax.request({ 
    url: 'ajax_demo/sample.json', 
    method: 'GET', 
    params:{ 
      username:usernameValue, 
      password:passValue}, 
    success: function(response, opts) { 
     var obj = Ext.decode(response.responseText); 
     console.dir(obj); 
    }, 
    failure: function(response, opts) { 
     console.log('server-side failure with status code ' + response.status); 
    }}); 

更新

先改變字段的名稱userpass然後把下面的代碼,而不是alert('Login please wait..');

Ext.Ajax.request({ 
    url: '140.45.45.20:9010/TService/Sms/Services', 
    params: form.getValues(), 
    method: 'GET', 
    success: function(response, opts) { 
    var obj = Ext.decode(response.responseText); 
    console.dir(obj); 
    //The request was successful - see the response in the response object 
}, 
failure: function(response, opts) { 
    console.log('server-side failure with status code ' + response.status); 
}}); 
+0

嗨llija,我的懷疑可能有點愚蠢。請和我一起裸照。我有一個基地url =「http://140.45.45.20:9010/TService/Sms/Services」在這個我想包括?user =「username」和?pass =「password」paras to GET請求。我基本上不了解你的代碼,因爲我是Extjs的初學者。請指導我。 –

+0

你做到了嗎? – ilija139

+0

我還在爲此而苦苦掙扎。這裏請求失敗,因爲我們使用POST發送。我的Web服務能夠響應GET請求。可能嗎? –

相關問題