如何知道 JSF 组件的 id,以便在 JavaScript 中使用?

8 浏览
0 Comments

如何知道 JSF 组件的 id,以便在 JavaScript 中使用?

问题:有时候你想要通过Javascript访问一个组件,使用getElementById,但是在JSF中id是动态生成的,所以你需要一种获取对象id的方法。我在下面给出了如何实现这一点的答案。

原始问题:我想在我的Javascript中使用下面的代码。如何引用JSF组件中的inputText组件呢?

更新:这篇文章讨论了类似的技术:JSF2.0中的客户端标识符。它提到了一个类似的方法:

建议使用inputText组件上的id属性,通过EL使用#{myInptTxtId}可以访问到该对象。上述示例中的代码如下所示:

function myFunc() {
    alert("Your email address is: " + document.getElementById("#{myInptTxtId.clientId}").value);
}

文章还提到,JSF 2.0在UIComponent类中添加了一个无参数的getClientId()方法。这样,上述建议中的#{myInptTxtId.clientId}构造可以获取到组件的实际生成id。

虽然在我的测试中这种方法不起作用。有其他人可以确认/否认吗?

下面提出的答案存在上述技术所没有的缺点。所以知道上述技术是否实际有效会很好。

0