2012-01-30 3 views
0

Nouveau sur sencha, cliquez ici. J'ai vérifié quelques tutoriels en ligne. J'ai un problème en essayant d'obtenir la valeur d'un champ de texte. L'erreur que j'obtiens en cliquant sur le bouton de connexion est Uncaught TypeError: Cannot call method 'getValue' of undefined. Cela signifie-t-il que mon Ext.getCmp n'est pas défini alors? J'ai enveloppé ce panneau dans la régulière Ext.setup....onReady:.....getValue indéfini dans Sencha Touch

var login = new Ext.Panel({ 
    height:'auto', 
    scroll:'vertical', 
    layout:{ 
     type:'vbox', 
     align:'center' 
    }, 
    items:[ 
     { 
      cls:'launchscreen', 
      html:logo, 
      padding:10 
     }, 
     new Ext.form.FormPanel({ 
      width:300, 
      cls:'loginform', 
      items:[ 
       { 
        xtype: 'fieldset', 
        title: 'Login', 
        items: [ 
         { 
          xtype: 'textfield', 
          name : 'username', 
          label: 'Username', 
          labelWidth: 85 
         }, 
         { 
          xtype: 'passwordfield', 
          name : 'password', 
          label: 'Password', 
          labelWidth: 85 
         } 
        ] 
       }, 
       { 
        xtype: 'button', 
        text: 'Submit', 
        ui: 'confirm', 
        handler:function() 
        { 
         alert(Ext.getCmp('username').getValue()); 
        } 
       } 
      ] 
     }) 
    ] 
}); 

EDIT: Je suis en mesure d'obtenir la valeur si je mets la propriété id sur le champ de texte. J'ai vu un exemple où le id n'est pas défini et ils obtiennent la valeur basée sur la propriété name. Donc, je suppose que ma question est maintenant je suis censé obtenir la valeur basée sur id ou name?

Répondre

1

En utilisant Ext.getCmp() vous devez fournir le ID de l'élément dont vous voulez la valeur. Voir Sencha API doc est pour ceci:

getCmp (id String) Ceci est référence abrégée Ext.ComponentManager.get. Recherche une composante existante par id Paramètres id: String L'ID de composant

Vous pouvez également trouver l'élément par son nom, mais je pense qu'il est plus rapide par ID, mais peut-être aussi un peu cher pour le moteur du navigateur. Je ne peux rien dire à ce sujet. Quoi qu'il en soit, la recherche de champ par nom est possible en utilisant la méthode findField(). Avec cette méthode, vous devez fournir l'ID ou le nom du champ que vous souhaitez. Voir API doc: http://docs.sencha.com/ext-js/4-0/#!/api/Ext.form.Basic-method-findField

Exemple:

var fieldValue= Ext.getCmp("YourFormID").getForm().findField("FieldName").getValue(); 
+0

Eh oui, je pense passer l'ID est mieux à la fin. Merci pour l'info. Je n'ai pas réussi à trouver la méthode getCmp dans leurs documents – Ronnie