2010-07-03 6 views
2

ici est le code et aussi je veux événement onpaste au lieu de clic, mais rien de travailpourquoi mes auditeurs ne fonctionnent pas sur extjs?

var mpan0 = new Ext.form.TextField({ 
    name:'mpan[]' , 
    value:0 , 
    allowblank:false , 
    enableKeyEvents:true , 
    fieldLabel:'Mpan', 
    maxLength:2, 
    width:35 
    }); 

mpan0.addListener('click', function(){ 
    alert("amiy"); 
}); 

Répondre

6

Ext.form.TextField n'a pas d'événement 'click'. Vous pouvez voir les événements, il se contente à:

http://www.sencha.com/deploy/dev/docs/?class=Ext.form.TextField

Le plus proche que je peux penser à ce que vous cherchez est l'événement « focus ».

Si vous devez vraiment avoir un événement de clic vous pouvez attacher un écouteur à l'élément DOM fondamental de l'objet sur le terrain:

Ext.form.TextField({ 
    listeners: { 
     afterrender: function(field) { 
      field.getEl().on('click', function(event, el) { 
       // do something on click 
      }); 
     } 
    } 
}); 

Je ne peux pas prétendre connaître le succès qui sera cependant.

Documentation sur l'événement click de Ext.Element se trouve à:

http://www.sencha.com/deploy/dev/docs/?class=Ext.Element

+0

Cet écouteur sera déclenché même en cliquant sur le étiquette de champ. Vous devriez lier l'événement à l'intérieur de l'élément input comme ceci: 'var inputElement = field.getEl(). Down ('entrée');' et même alors, cliquer sur l'étiquette du champ peut déclencher l'événement click sur le champ d'entrée lui-même, c'est pourquoi vous devriez utiliser l'événement 'mousedown' comme ceci:' inputElement.on ({mousedown: function() {// ..' – MarthyM

-3

ExtJs utilise on, il devrait donc être

mpan0.on("click", function(){ 
    alert("amiy"); 
}); 

Mais vous pouvez également l'ajouter déclarative

var mpan0 = new Ext.form.TextField({ 
    name:'mpan[]' , 
    value:0 , 
    allowblank:false , 
    enableKeyEvents:true , 
    fieldLabel:'Mpan', 
    maxLength:2, 
    width:35, 
    listeners: { 
     "click": function() { 
      alert("amiy"); 
     } 
    } 
}); 
+0

salut sean, non ça ne fonctionne pas non plus –

+0

Ensuite, il y a autre chose qui ne va pas - le code ci-dessus est correct. Avez-vous essayé un débogueur? Btw, 'on' et' addListener' est le même .. –

+0

salut je ne sais pas comment utiliser le débogueur, aussi j'ai essayé ur code je ne sais pas son travail ni dans aucune condition, je pense que nous devons trouver la variable qui a besoin être réglé pour activer sur click, ou il y a une réponse qui fonctionne qui est donnée par "Owlness", Peut-être vous pouvez suggérer un meilleur code, ou vous en tirer quelque chose –

2
yourtextfield = new Ext.form.TextField({ 
    id:'yourtextfield ', 
    readOnly : true, 
    listeners: {'render': function(cmp) { 
     cmp.getEl().on('click', function(event, el) { 
     alert("You click text field"); 
     });    
    }}   
}); 

Cela fonctionne.

Questions connexes