JSF, JavaScript focus() nem működik

Fórumok

Sziasztok.

Van egy form azon pedig egy PrimeFaces-es autoComplete komponens és egy commandButton melynek megnyomásakor történik a backend rétegben valami majd ezután szeretném kitörölni az autocomplet tartalmát és a focust oda adni neki


        RequestContext context = RequestContext.getCurrentInstance();
        context.execute("document.getElementById(\"form:tab:cim_input\").value='';");
        context.execute("document.getElementById(\"form:tab:cim_input\").focus();");
        context.update("form");

A mező tartalmát szépen kitörli de a a focus továbbra is a commandButtonon marad. Mit nem csinálok jól?

Hozzászólások

Csak találgatok, de megpróbálnám megcserélni:
context.update("form");
context.execute("document.getElementById(\"form:tab:cim_input\").focus();");

Sajnos nem oldja meg.
Úgy sikerült megoldani, hogy a commandButton oncomplete eseményében hívok meg egy javaScript függvény, ami oda teszi a focust.
Nem sikerült rájönnöm, hogy a commandButton mit mókol a háttérben, mikor mi hívódik meg. Valószínűleg az action paraméterben megadott backingbean metódus lefutása után még történik valami, és hiába adom oda focust ebben a metódusban az autoComplete komponens input mezőjének, valami még történhet utána ami miatt vissza kerül a commandButtonra a focus.