如何使用 extjs 4 获取无线电组检查值?

Posted

技术标签:

【中文标题】如何使用 extjs 4 获取无线电组检查值?【英文标题】:How to get radiogroup checked value using extjs 4? 【发布时间】:2013-07-26 07:21:25 【问题描述】:

我将 extjs 4 用于单选按钮。代码如下

var mychkbxgrp = Ext.create('Ext.form.RadioGroup',
    fieldLabel: 'Layer',
    columns: 1, 
    items:[
     boxLabel: 'District', name: 'rb', inputValue: 'district',itemId:"DIS"
    ,
     boxLabel: 'SubDistrict', name: 'rb', inputValue: 'Subdistrict',itemId:"sub"
    ,
     boxLabel: 'Village', name: 'rb', inputValue: 'Village'
    ,
     boxLabel: 'Road', name: 'rb', inputValue: 'Roads'
    ,
     boxLabel: 'Point', name: 'rb', inputValue: 'POINT'
    ],
    listeners: 
     change : function() 
         alert(this.getValue());
        
    
    );

一旦选中,我想获取选中的单选按钮的值。为此,我使用了听众但没有工作。我是对的还是需要使用其他方式。请帮助我。

【问题讨论】:

【参考方案1】:

你可以使用函数getChecked()

【讨论】:

【参考方案2】:

我尝试了很多解决方案,但只有以下一种有效。希望对你有帮助

listeners: 
     change : function(obj, value) 
         alert(value.individual);
        
    

【讨论】:

【参考方案3】:

您的代码看起来不错。更改事件被触发。你唯一需要做的改变是

listeners: 
     change : function(obj, value) 
         alert(value.rb);
        
    

value.rb 将为您提供被选中的单选按钮的值。

【讨论】:

在你的代码中如果你把alert(this.getValue())改成alert(this.getValue().rb),你就完成了。【参考方案4】:

这也可以写成通用的来处理你所有的广播组。值(在我的示例中使用 radioGroup)是 RadioGroup,因此您可以使用

getChecked()
像这样:
listeners: 
    change: radioGroupHandler


...

function radioGroupHandler(obj, radioGroup) 
    var checked = radioGroup.getChecked();

    if (checked.length) 
         alert(radioGroup.getChecked()[0].getValue());
     else 
         alert('nothing checked');
    

【讨论】:

以上是关于如何使用 extjs 4 获取无线电组检查值?的主要内容,如果未能解决你的问题,请参考以下文章

ExtJs分组中的clearfilter后如何获取特定组的所有记录

如何在每个组 ExtJS 4 中过滤分组网格

如何在Extjs 4中使用自定义检查或选中的radiogroup事件

Extjs 4.1 提交表单 - 如何在 xtype: displayfield 中获取值

ExtJS 3.4 复选框组未设置值

如果有一个未选中,如何检查多无线电组