如何根据extjs设置单选按钮条件

时间:2019-04-25 13:25:24

标签: extjs

我想根据某个条件标记一个无线电字段,当不满足该条件时希望在窗口中显示错误消息。

var item = {
    xtype: 'radiogroup',
    columnWidth : 1, 
    columns: 2, 
    id : 'radio', 
    height : 50, 
    itemId:'defaultValue_radio', 
    vertical:false, 
    items: [ 
        {
            boxLabel: 'None',
            name: 'defacultValueType', 
            inputValue: 'None' 
        }, {
            boxLabel: 'All', 
            name: 'defacultValueType', 
            inputValue: 'All' 
        }, {
            boxLabel: 'Custom value', 
            name: 'defacultValueType', 
            inputValue: 'Custom value'
        }, {
            boxLabel: 'Select from list', 
            name: 'defacultValueType', 
            inputValue: 'Select value' 
        } 
    ], 

1 个答案:

答案 0 :(得分:0)

您可以在simpleValue内将radiogroup设置为true以启用值绑定,然后可以侦听beforerender事件,从商店中获取值或从中获取任何值,请设置该值,如果未定义该值,则会返回一条消息。

Fiddle

    items: [{
        xtype: 'radiogroup',
        columnWidth: 1,
        columns: 2,
        id: 'radio',
        height: 50,
        itemId: 'defaultValue_radio',
        vertical: false,
        simpleValue: true,
        items: [{
            boxLabel: 'None',
            name: 'defacultValueType',
            inputValue: 'None'
        }, {
            boxLabel: 'All',
            name: 'defacultValueType',
            inputValue: 'All'
        }, {
            boxLabel: 'Custom value',
            name: 'defacultValueType',
            inputValue: 'Custom value'
        }, {
            boxLabel: 'Select from list',
            name: 'defacultValueType',
            inputValue: 'Select value'
        }],
        listeners: {
            beforerender: function (component, eOpts) {
                let value = 'Custom value'; //get value from store or whatever you like
                component.setValue(value);
                if (!component.getValue()) {
                    Ext.Msg.show({
                        title: 'Error!',
                        message: 'Invalid Value',
                        buttons: Ext.Msg.OK,
                        icon: Ext.Msg.WARNING,
                    });
                }

            }
        }
    }]