我遇到了a4j:ajax组件的问题。如何在oncomplete函数中获取父组件的id?
我有丰富的:dataTable,所有列都是带ajax监听器的inputText,我需要做的是,当ajax验证返回false时,我需要关注该字段并将背景更改为红色。不幸的是,我不知道如何从标记中获取特定inputText的Id。下面的代码告诉我要做什么,但组件的id是未定义的。我想是因为这是ajax函数的id而不是inputText。。。
这是代码:
<h:inputText value= "#{resultsTableRow[valueOfField]}" >
<a4j:ajax event="blur" exceute="@form" render="submitManualsButton"
listener="#{bean.theActionListener(resultsTableRow.identifier , columnDBName)}"
oncomplete=" if (#{bean.validationResult}) #{rich:component('validationPopup')}.show();
setFocusOnElement(this.id); // <----- that is crucial
return false;" />
</h:inputText>
和js函数:
function setFocusOnElement( element)
{
$(resolveId(id)).focus();
}
任何帮助都会很棒!提前感谢。。。。
好吧,给输入一个id并使用它。
<h:inputText id="input" …>
…
setFocusOnElement("input");
现在,由于fullId看起来不一样,你需要做这样的事情:
<rich:dataTable rowKeyVar="rk" …>
…
<h:inputText id="input#{rk}" …>
…
setFocusOnElement("input#{rk}");
function setFocusOnElement(id)
{
$('[id$=' + id + ']').focus();
}