在描述问题之前,我想补充一点,我已经在谷歌上找到了这个问题并找到了许多解决方案但没有与 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}”)。值; 的
但是,如果我尝试传入动态ID。它不起作用。我尝试过在Google上找到的“n”种方法但没有关于这个问题。我在这里尝试的一个解决方案是:
var x =“inputText1”;
。的的document.getElementById( “#{ID:” + X + “}”)值; 的
真的很感激任何帮助。真的很想听到一些好的建议。
答案 0 :(得分:1)
"#{id:inputText1}"
部分是在服务页面之前在服务器上计算的,因此在客户端JS中设置ID为时已晚。
要在SSJS中设置ID,您可以这样做:
document.getElementById("#{javascript:var x='inputText1'; getClientId(x)}").value;
使用getClientId
,您还可以在SSJS中构建一个CSJS ID数组。然后你可以在CSJS中循环该数组。你可以用这种方式构建数组:
var strIDs = ${javascript:'["a","b","c"]'};