XPages csjs将变量传递给函数?

时间:2014-12-23 13:15:46

标签: javascript variables xpages client-side

点击按钮,我在客户端JavaScript中调用一个函数。

doIt("TEST");

“TEST”只是我XPage上标签的ID。 在函数中,我想使用我作为ID传递的变量。类似的东西:

function doIt(item){
 alert(dojo.query("[id$=':item']").innerHTML);
}

OR

function doIt(item){
 val = XSP.getElementById("#{id:item}").innerHTML;
 alert(val);
}

我也尝试过使用它,它给出了undefined:

val = dojo.query("[id$=':" + item + "']").innerHTML;
alert(val);

如果我像这样硬编码ID名称,那么我得到ID为“TEST”的元素的正确innerHTML:

val = XSP.getElementById("#{id:TEST}").innerHTML;
alert(val);

在尝试使用传递的变量编写这个非常简单的代码行时,我的语法错在哪里?

2 个答案:

答案 0 :(得分:1)

最简单的方法是使用完整的id调用您的函数:

doIt("#{id:Test}")

并在你的功能中使用它

function doIt(item){
    alert(dojo.byId(item).innerHTML);
}

答案 1 :(得分:0)

在" onclick"按钮中的客户端事件(在XPage或CC中),可以计算客户端ID,所以你应该把它放在这样的东西:

doIt("#{id:Test}");   // << "#{id:Test}" is computed in the server-side and the final client ID is sent to the browser

然后,在你的cjs库中(cjs库不是&#34;评估&#34;在发送到客户端之前,所以在这里你不能使用&#34;#{id:Test}&#34;表达式)你应该有类似的东西:

function doIt(idElement) {
    var domElem = dojo.byId(idElement);  // << here you get the element
}