Xpages 复选框组用于使用onClick显示/隐藏字段。快速单击多个选项失败

Xpages 复选框组用于使用onClick显示/隐藏字段。快速单击多个选项失败,xpages,Xpages,我正在用一个带有五个选项的复选框对一个相当简单的表单进行故障排除,每个选项对应于一组字段,这些字段要么隐藏,要么显示,这取决于复选框是否被选中。相当简单 该复选框在onClick事件中包含代码,用于设置viewScope变量并部分刷新包含所有字段组的面板。每个字段组都位于一个面板内,如果viewScope变量为true,则该面板将进行渲染 然而,如果我快速选择三个选项,我会发现第一个选项之后的点击并不总是被拾取,只有第一个面板显示。我假设这是因为onClick事件只运行一次,如果它已经在运行,就

我正在用一个带有五个选项的复选框对一个相当简单的表单进行故障排除,每个选项对应于一组字段,这些字段要么隐藏,要么显示,这取决于复选框是否被选中。相当简单

该复选框在onClick事件中包含代码,用于设置viewScope变量并部分刷新包含所有字段组的面板。每个字段组都位于一个面板内,如果viewScope变量为true,则该面板将进行渲染

然而,如果我快速选择三个选项,我会发现第一个选项之后的点击并不总是被拾取,只有第一个面板显示。我假设这是因为onClick事件只运行一次,如果它已经在运行,就不会重新运行,对吗


有人能提出一种更具响应性的方法吗?单个复选框?改为客户端JS?

部分刷新有延迟。延迟大约为20秒,或者直到最后一次部分刷新完成。可以在xsp.properties-file中使用参数xsp.partial.update.timeout=[seconds]配置确切的延迟

可以使用XSP.submitLatency在CSJS中查询当前延迟。您可以通过在客户机中调用XSP.allowSubmit()重置此延迟,然后允许同时进行“多次”刷新


但是,在您执行这些杂技动作之前,您应该仔细考虑一下用户界面:是否要求在单击复选框后自动运行刷新?为什么不提供一个简单的“刷新”按钮,允许用户手动执行此操作?或者,您可以添加一个加载覆盖以通知用户“正在发生某些事情”-此覆盖将阻止多次单击,如果用户单击过快,则不再是问题。

绝对同意Sven。服务器端刷新/部分刷新的性质也让我感到很不舒服

如果必须这样做,我最终的目的是通过CSJS将复选框(实际上我使用的是一个无线电组)的更新发送到一个容器字段,css将css display属性设置为none。此字段是我绑定回viewScope变量的字段。隐藏容器字段将使用onBlur CSJS事件更新

要刷新viewScope的变量以供显示使用,它至少需要部分刷新;为此,我假设人们知道,当他们保存表单时,它将加载最新的计算信息