我有这个有效的代码,虽然我希望它会失败。接收焦点的组件是,<p:inputText>
所以我希望它的名字是custForm:panelGrid:name-id
(以反映<p:inputText>
组件在<p:panelGrid>
组件中的嵌入)。然而,唯一有效的命名是custForm:name-id
. 似乎有一些 PrimeFaces 组件没有在限定名称中“插入”它们的id 。如果是这样,记录在哪里?
<h:form id="custForm" styleClass="jsfcrud_list_form">
<script type="text/javascript">
function primeFacesId()
{
var original = 'custForm:name-id';
var idToSetFocus = PrimeFaces.escapeClientId(original);
$(idToSetFocus).focus();
}
</script>
<script>
jQuery(document).ready(function() {
primeFacesId();
});
</script>
<p:panelGrid columns="10" style="width: 98%;margin-left: 1%;margin-right: 1%;" id="panelGrid">
<h:outputLabel for="name" value="Name:" />
<p:inputText id="name-id" value="#{customerLController.nameDBConstraint}" label="name" />
(...)
[我在公司防火墙后面,由于“SO 需要来自另一个域的外部 JavaScript”,我将在几天内无法接受任何答案]