通过 SSJS 在 xpages 中的单选按钮组中获取 select 值

Get select value in radio button group in xpages by SSJS

我在 xpages 应用程序中有以下要求:

我有一个包含两个选项的单选按钮组。 我有一个组合框,其值将从单选按钮组中选择的选项计算得出。这些选项将根据与单选按钮的 onChange 事件关联的组合框的部分刷新来计算。

我的问题是我无法获取在单选按钮上选择的值来装载组合框选项。当我通过 SSJS 进行组装时,我还必须在 SSJS 中的单选按钮上选择值。 xpages 上有没有我可以从中获取所选值的组件/方法?

我知道通过 RPC 组件或 jquery 可以通过 CSJS 获取选定的值,但我只想使用 SSJS。

感恩

克努特,

我根据您的建议,根据下面的代码做了一个例子,但是没有成功。因为?

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:radioGroup id="radioGroup2">
    <xp:selectItem itemLabel="a"></xp:selectItem>
    <xp:selectItem itemLabel="b"></xp:selectItem>
    <xp:selectItem itemLabel="c"></xp:selectItem>
    <xp:eventHandler
        event="onclick"
        submit="true"
        refreshMode="partial" refreshId="computedField2" execMode="partial"   execId="radioGroup2">
    </xp:eventHandler></xp:radioGroup>
<xp:text
    escape="true"
    id="computedField2"
    value="#{javascript:getComponent('radioGroup2').getValue()}">
</xp:text><xp:br></xp:br><xp:br></xp:br>
</xp:view>

使用

getComponent('radioGroup1').getValue()

将 "radioGroup1" 替换为您的单选按钮组的 id

这是一个例子:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view
    xmlns:xp="http://www.ibm.com/xsp/core">
    <xp:radioGroup
        id="radioGroup1"
        value="#{viewScope.radio}">
        <xp:selectItem itemLabel="a" />
        <xp:selectItem itemLabel="b" />
        <xp:eventHandler
            event="onclick"
            submit="true"
            refreshMode="partial"
            refreshId="checkBoxGroup1" execMode="partial" execId="radioGroup1">
        </xp:eventHandler>
    </xp:radioGroup>
    <xp:br></xp:br>
    <xp:checkBoxGroup
        id="checkBoxGroup1"
        value="#{viewScope.check}">
        <xp:selectItems>
            <xp:this.value><![CDATA[#{javascript:
                if (!getComponent('radioGroup1').getValue()) {
                    return [];
                }
                if (getComponent('radioGroup1').getValue() == 'a') {
                    return ['A1', 'A2'];
                }
                return ['B1', 'B2'];
            }]]></xp:this.value>
        </xp:selectItems>
    </xp:checkBoxGroup>
</xp:view>

您可以使用 viewScope.radio 而不是 getComponent('radioGroup1').getValue(),因为在此示例中无线电的值存储在视图范围变量中。

我通过在组合框的计算值中使用 getComponent("RadioButtonGroup1").getValue() 来完成类似的操作。或者你可以使用这个:

this.getParent().getValue()

在 onChange 中填充组合框所基于的作用域变量。