如何知道 JSF 组件的 id,以便在 JavaScript 中使用?
- 论坛
- 如何知道 JSF 组件的 id,以便在 JavaScript 中使用?
8 浏览
如何知道 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。
虽然在我的测试中这种方法不起作用。有其他人可以确认/否认吗?
下面提出的答案存在上述技术所没有的缺点。所以知道上述技术是否实际有效会很好。