0

在描述问题之前,我想补充一点,我在 google 上寻找过这个问题并找到了很多解决方案,但没有一个与XPAGES相关。因为,Xpage 有一个独特的方法来生成字段 id 我面临这个问题。我也在 IBM 论坛上发布了同样的问题并等待那里的回复(http://www-10.lotus.com/ldd/ndseforum.nsf/xpTopicThread.xsp?documentId=EDEBB14BDF2E804F85257BE8001E4F76):

问题:

我试图将动态 id 传递给默认函数 getElementById 但没有成功。为了清楚地解释它,我对特定字段进行了前端验证。该字段存储在数据库中。因此,我为所有字段运行了一个 for 循环。这里的问题是 XPages 会动态生成 Id,因此如果存在分层选项卡式面板,那么对于相同的表单,Id 也会在其中包含选项卡式面板 Id。

这是问题的代码视图:

检索值(CSJS)的标准方法是:

document.getElementById("#{id:inputText1}").value;

但是,如果我尝试传入动态 id。它不起作用。我已经尝试了“n”种在 Google 上找到的方法,但都没有解决这个问题。我在这里尝试的一种解决方案是:

var x = "inputText1";

document.getElementById("#{id:"+x+"}").value;

任何帮助将不胜感激。真的很想听到一些好的建议。

4

1 回答 1

1

"#{id:inputText1}"部分是在提供页面之前在服务器上计算的,因此在客户端 JS 中设置 ID 为时已晚。

要在 SSJS 中设置 ID,您可以这样做:

document.getElementById("#{javascript:var x='inputText1'; getClientId(x)}").value;

您还可以在getClientIdSSJS 中构建一个 ID 的 CSJS 数组。然后您可以在 CSJS 中循环该数组。您可以这样构建数组:

var strIDs = ${javascript:'["a","b","c"]'};
于 2013-09-16T06:39:42.837 回答