2010-07-01 718 views
0

我有一個簡單的單選按鈕:添加點擊事件單選按鈕Ext.form.Radio在Ext JS中

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

但是林有麻煩添加上單擊事件加時賽它。 我通常使用:

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

作爲一個配置參數,但它似乎並沒有在這種情況下工作。

任何意見讚賞,謝謝。

回答

4

無線電和複選框沒有單擊事件 - 我相信你想要check事件。你的聽衆應該是這樣的:

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

注意,handler配置是這一個方便的快捷方式(也可用按鈕)。取而代之的是聽衆語法,你可能只是這樣做:

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

啊哈,非常感謝! – roobotta 2010-07-01 16:10:46

+1

一個小問題,檢查事件只會在第一次點擊時執行。因此,例如,我有2個複選框,並點擊是,然後否,然後是的。檢查將不會執行第二次是的點擊。對不起,我是愚蠢的,但我在http://www.sencha.com/deploy/dev/docs/source/Radio.html#cls-Ext.form.Radio並找不到該對象的偵聽器列表。 – roobotta 2010-07-01 16:26:11

+0

您不應該查看所有受支持事件的來源,因爲許多事件都是從超類繼承而來的。請看下面的文檔:http://www.sencha.com/deploy/dev/docs/?class=Ext.form.Radio Radio extends複選框 - 如果您檢查Checkbox.setValue的源代碼,您會看到檢查事件在任何時候值發生變化時都會引發(以及處理程序fn,如果適用的話),因此您的方面肯定會遇到一些問題。 – 2010-07-01 17:04:32

1

試試這個:

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

如果您使用的是CheckBoxGroup,你應該做這樣的事情,以確保您在射擊正確的電臺。

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