动态更新无线电inputValue(EXT JS 4.2.1)

时间:2014-04-24 15:15:39

标签: javascript extjs extjs4

我正在创建一个radiogroup,当它被创建时,我设置了" inputValue"设置字段的值。对于第一个单选按钮,inputValue设置为' I' (for in)和' O' (for out)设置为第二个单选按钮。

如果有人点击了" OUT"收音机,然后会弹出一个窗口并要求他们从组合框中选择一个值。可能的值有' F'' R'或者' T'如果他们选择其中一个,我想修改' OUT' inputValue来反映这一点。因此,当提交表单时,它应该例如发送回F' F' F' F'而不是' O'

以下是单选按钮的代码:

items: [
    {
        xtype: 'container',
        defaultType: 'radiofield',
        allowBlank: false,
        blankText: 'Required',
        hideLabel: true,
        layout: 'hbox',
        items: [
            {
                xtype: 'radiofield',
                boxLabel: 'IN',
                name: 'susceptible_populations_1',
                width: 50,
                padding: '2 0 0 10',
                checked: true,
                inputValue: 'I',
                id: 'susceptible_populations_1_in'
            },
            {
                xtype: 'radiofield',
                boxLabel: 'OUT',
                name: 'susceptible_populations_1',
                width: 115,
                padding: '2 0 0 10',
                inputValue: 'O',
                id: 'susceptible_populations_1_out',
                listeners: {
                    click: {
                        element: 'el',
                        fn: function() {
                            show_popup_window('susceptible_populations_1_out', '9A(5)');
                        }
                    }
                }
            }
        ]
    }
]

我已经用Google搜索并找到了几个解决方案,但它们似乎都不适合我。所有这些人仍然会回归“O'当我提交表格时。

以下是我的弹出窗口的一些定义:

  • FIELD_NAME 作为该函数的第一个参数传递。在这种情况下,它是“sensitive_populations_1_out'
  • TRUNCATED_FIELD_NAME 与上述内容相同,但' _out'已被删除。在这种情况下,它是“易受影响的人群”'这是我的表格帖子实际返回的字段的名称。
  • 记录是组合框的值。对于此示例,我们可以使用字母' F'。

以下是我正在尝试的一些示例:

Ext.getCmp(FIELD_NAME).setValue(record);

这似乎将收音机的值设置为true。当我点击它时,该值应该已设置为true,因此这是多余的,并且不会将inputValue更改为' F'

Ext.get(FIELD_NAME).set({inputValue:record});

这似乎无能为力。我猜测它是因为要设置某些东西,set需要一个当前的名称和值,并在匹配时将该实例设置为true。这不是我试图做的事情。

var temp = Ext.get(Ext.ComponentQuery.query('[name=' + TRUNCATED_FIELD_NAME + ']')).getValue().elements[1];
Ext.get(temp).set({value:record});

这里我试图直接访问该元素,它似乎也没有做任何事情。我也尝试了许多不同的先前代码段组合(包括在上面的例子中用TRUNCATED_FIELD_NAME替换了FIELD_NAME),但是收音机的价值总是以' O'。

在Sencha Touch中,似乎有setGroupValue,但我无法在任何地方的EXT JS 4文档中找到它。 (虽然getGroupValue按预期工作。)

有人可以就此给我一些指导吗?

非常感谢!

1 个答案:

答案 0 :(得分:1)

您可以随时设置配置属性

Ext.getCmp(FIELD_NAME).inputValue = 'F'

只注意不应该使用带有静态ID的getCmp,而是使用ComponentQuery和itemId。