Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在a4j:ajax oncomplete中如何获取id?_Ajax_Jsf_Richfaces_Ajax4jsf - Fatal编程技术网

在a4j:ajax oncomplete中如何获取id?

在a4j:ajax oncomplete中如何获取id?,ajax,jsf,richfaces,ajax4jsf,Ajax,Jsf,Richfaces,Ajax4jsf,我已经面对了a4j:ajax组件的问题。如何在oncomplete函数中获取父组件的id 我有rich:dataTable,所有列都是带有ajax listener的inputText,我需要做的是当ajax验证返回false时,我需要关注该字段并将背景更改为红色。不幸的是,我不知道如何从标签中获取特定inputText的Id。下面的代码告诉我将要做什么,但组件的id未定义。我猜因为这是ajax函数的id而不是inputText 代码如下: <h:inputText value= "#{r

我已经面对了a4j:ajax组件的问题。如何在oncomplete函数中获取父组件的id

我有rich:dataTable,所有列都是带有ajax listener的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>

任何帮助都会很好!提前感谢……

好吧,给输入一个id并使用它

<h:inputText id="input" …>
    …
    setFocusOnElement("input");

…
SetFocusOneElement(“输入”);
现在,由于FULLID看起来不同,您需要执行以下操作:

<rich:dataTable rowKeyVar="rk" …>
    …
    <h:inputText id="input#{rk}" …>
        …
        setFocusOnElement("input#{rk}");

function setFocusOnElement(id)
{   
    $('[id$=' + id + ']').focus();
}

…
…
SetFocusOneElement(“输入#{rk}”);
函数setFocusOneElement(id)
{   
$('[id$='+id+']')。焦点();
}

谢谢,这可能有用。。。但是万一我每行有多个5,6个输入呢?在这种情况下,您可能需要确定bean中的id,然后检索它们。您可以使用
数据
属性进行此操作。
<rich:dataTable rowKeyVar="rk" …>
    …
    <h:inputText id="input#{rk}" …>
        …
        setFocusOnElement("input#{rk}");

function setFocusOnElement(id)
{   
    $('[id$=' + id + ']').focus();
}