Checkbox XPage-如何获取复选框组的正确值?

Checkbox XPage-如何获取复选框组的正确值?,checkbox,xpages,Checkbox,Xpages,在我的simple XPage中,我有一个包含公式项的复选框组: document1.getValue("cHumanNames") + "|" + document1.getValue("cUserID") 列表cHumanNames和cUserID正常,因此我查看并检查John Smith,然后提交john234。根据需要 我被要求在一个单独的列表中显示选中的名称(用于控制…),似乎我无法从用户ID返回。必须有一种方法来选择用于显示的值: getcomponent("checkBoxGro

在我的simple XPage中,我有一个包含公式项的复选框组:

document1.getValue("cHumanNames") + "|" + document1.getValue("cUserID")
列表
cHumanNames
cUserID
正常,因此我查看并检查
John Smith
,然后提交
john234
。根据需要

我被要求在一个单独的列表中显示选中的名称(用于控制…),似乎我无法从
用户ID
返回。必须有一种方法来选择用于显示的值:

getcomponent("checkBoxGroup1").??????

当然,如果我使用
getValue()
,我会得到ID列表,但我需要名称。该值在哪里?

在服务器端,没有简单的方法获取显示值-所选值仅保留为别名,其余值可能仅用于渲染。您可以尝试添加额外的抽象层,并创建一个映射,为您的复选框和列表提供值。列表将简单地使用映射将选中的值转换为显示值。

您可以修改此XSnippet以搜索别名值的标签:


或者,您可以使用变量索引为您的值(存储在文档中)找到正确的标签。

当您查看为复选框组生成的HTML源时,您会发现如下内容:

John Smith

基本上,标签
John Smith
永远不会提交到数据源。如果您正在寻找SSJS实现,那么Sven Hasselbach的答案就行了。如果您正在寻找客户端JavaScript实现,那么下面的代码段应该可以工作:

function getCheckedValues() {
    var checkedValues = new Array();
    dojo.query("input[name=\"#{id:checkBoxGroup1}\"]").forEach(
        function(node) {
            if (node.checked) {
                checkedValues.push(node.parentNode.innerText);
            }
        }
    );
    return checkedValues.join(", ");
}

上面的代码段是为名为
checkBoxGroup1

的复选框组编写的,您想要服务器端或客户端JavaScript中的值吗?