2010-07-01 7 views
0

J'ai un simple bouton radio:événement clic pour boîtes de radio Ext.form.Radio dans Ext JS

new Ext.form.Radio({ 
        id: 'ptype', 
        boxLabel:'Yes', 
        name: 'price_type', 
        value: 1 
       }) 

Cependant Im ayant des difficultés à ajouter un clic sur l'événement ot il. J'utilise habituellement:

listeners: { 
       click: function (a,e) { 
        //event 
       } 
} 

En tant que paramètre de configuration, mais il ne semble pas fonctionner dans ce cas.

Tout conseil apprécié, merci.

Répondre

4

La radio et les cases à cocher n'ont pas d'événement de clic. Je crois que vous voulez plutôt l'événement check. Votre auditeur devrait ressembler à:

listeners: { 
    check: function (ctl, val) { 
     // val is the new checked boolean value 
    } 
} 

Notez que la configuration handler est un raccourci pratique pour ce (également disponible sur les boutons). Au lieu des auditeurs syntaxe que vous pouvez simplement faire ceci:

handler: function(ctl, val) { 
    // etc 
} 
+0

Ah, merci beaucoup! – roobotta

+1

Un petit problème, l'événement check ne semble être exécuté que lors du premier clic. Donc par exemple j'ai eu 2 cases à cocher et j'ai cliqué sur oui, alors non, alors oui. La vérification ne serait pas exécutée le deuxième clic sur oui. Désolé que je suis stupide mais Im sur http://www.sencha.com/deploy/dev/docs/source/Radio.html#cls-Ext.form.Radio et ne peut pas trouver une liste des écouteurs pour l'objet. – roobotta

+0

Vous ne devriez pas regarder la source pour tous les événements supportés, car beaucoup sont hérités des superclasses. Regardez les docs à la place: http://www.sencha.com/deploy/dev/docs/?class=Ext.form.Radio Radio étend la case à cocher - si vous examinez la source de Checkbox.setValue, vous verrez que l'événement check est déclenché (et le gestionnaire fn appelé le cas échéant) chaque fois que la valeur change, il doit donc y avoir un problème de votre côté. –

1

Essayez ceci:

new Ext.form.Radio({ 
        id: 'ptype', 
        boxLabel:'Yes', 
        name: 'price_type', 
        value: 1 
        onClick: function(e){ 
        ..... 
        ..... 
        } 
       }) 
0

Si vous utilisez un CheckBoxGroup, vous devez faire quelque chose comme ça pour vous assurer que vous tiriez sur la Correct Radio.

listeners: { 
    check: function(checkbox, checked) { 
     if(checked) { 
       // do whatever. 
     } 
    } 
}