javascript - Primefaces、JavaScript 和 JSF 不能很好地协同工作,或者我做错了什么

标签 javascript jquery jsf primefaces

这很简单

<p:commandLink value="Tom" onclick="document.getElementById('tom').focus()"/><br/>
<input id="tom"/>

当您点击 Tom 时,文本框获得焦点。太好了,现在试试这个

<p:commandLink value="Tom" onclick="document.getElementById('tom').focus()"/><br/>
<h:inputText id="tom"/> <br/>

当我点击什么都没有发生时,我检查了 Firebug ,我明白了

document.getElementById("tom") is null

当我尝试使用 jQuery $('#tom').focus() 时,没有任何反应,没有错误,但也没有获得焦点。这是我从firebug看到的response(不确定这是不是服务器的响应)

<?xml version="1.0" encoding="utf-8"?>
<partial-response>
    <changes>
       <update id="javax.faces.ViewState"><![CDATA[455334589763307998:-2971181471269134244]]></update>
    </changes>
    <extension primefacesCallbackParam="validationFailed">{"validationFailed":false}</extension>
</partial-response>

最佳答案

JSF 将在 ID 前添加 UINamingContainer具有 UINamingContainer 组件本身 ID 的子项(h:formh:dataTable 等)。您可以通过将 prependId 属性设置为 false 来禁用此功能。

<h:form prependId="false">

您将无法再在同一 View 的其他地方动态包含同一段代码。禁用此功能时请记住这一点。

关于javascript - Primefaces、JavaScript 和 JSF 不能很好地协同工作,或者我做错了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4038456/

相关文章:

javascript - 如何使用 Javascript 函数命名变量?

jquery - 通过 id 属性的前半部分查找元素组?

Javascript 模块模式,ajax 函数回调

java - 有没有办法知道在 JSF 项目的 xhtml 文件中引用了哪些 bean 属性?

java - JSF 托管 Bean 自动创建?

javascript - 使用 orderBy 的表排序未按预期工作

javascript - 循环中的局部变量和全局变量

javascript - 在javascript中为类中的私有(private)函数创建实例

jquery - ipad - 位置 :fixed bug on zoom in

javascript - JSF:Javascript google map API - 标记获得相同的标题