jquery - 如何在jquery中引用JSF组件Id?

标签 jquery jquery-ui jsf

如何在 jquery 中引用 JSF 组件,因为我不知道要引用的组件 id 前面的 id?

最佳答案

你可以全部给 NamingContainer View 中的组件,例如 <h:form> , <h:dataTable> , <ui:repeat> , <my:composite> 固定 ID,以便可以安全地预测 HTML 生成的客户端 ID。如果您不确定,只需在网络浏览器中打开页面,右键单击并执行查看源代码。如果您看到自动生成的 ID,如 j_id123在客户端 ID 链中,那么您需要为组件提供一个固定的 ID。

或者,您可以使用#{component.clientId}让 EL 将组件的客户端 ID 打印到生成的 HTML 输出中。您可以使用组件的 binding属性将组件绑定(bind)到 View 。像这样的事情:

<h:inputText binding="#{foo}" />
<script>
    var $foo = $("[id='#{foo.clientId}']"); // jQuery will then escape ":".
    // ...
</script>

这只要求脚本是 View 文件的一部分。

作为另一种选择,您可以为相关元素指定一个类名:

<h:inputText styleClass="foo" />
<script>
    var $foo = $(".foo");
    // ...
</script>

作为另一种选择,您可以将 HTML DOM 元素本身传递到函数中:

<h:inputText onclick="foo(this)" />
<script>
    function foo(element) {
        var $element = $(element);
        // ...
    }
</script>

关于jquery - 如何在jquery中引用JSF组件Id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7132061/

相关文章:

jsf - 导航到另一个页面 JSF

url - 从 URL 中删除应用程序名称

jquery - 从 Invoice 中的数据库中获取值

javascript - 固定标记在中心并拖动 map 以获得纬度,经度

基于选择选项的javascript动态表单生成

jquery - 是否有针对 jQuery UI 对话框中损坏的 closeOnEscape 的解决方法

javascript - 具有嵌套项的父项也会触发子项

java - IceFaces 1.8 中的 SelectInputText ValueChangeListener 问题

javascript - 仅在搜索词更改时去抖动搜索

jquery - 修改表单属性