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