here’s the scenario:
We have what we call dynamic tables. It lets the user add as many rows as he requires. Really neat.
In some of the fields we use type ahead.
Recently I figured: it would be nice to see an indicator if the server is “thinking”… something like
I could do it easily via one specific field from which I knew it’s id …
But in those dynamic tables I have no clue on which field the event for type ahead was triggered….
until now:
Cudos to Paul Calhoun with his incredibly useful tips about CSJS (something I usually avoid as much as I can)
There I found the solution! You can call SERVER side JS from CLIENT side JS… isn’t that fantastic?
here’s how:
call the SSJS like this:
“#{javascript:<ServerSide JavaScript>}”
example to alert the id of an element via it’s event, in this case onFocus, which was triggered:
alert( “#{javascript:BackingBean.getElementId(this)}” )
For those ones interested what the getElementId does in my Java Bean:
UIInput input = (UIInput) handler.getParent();
return input.getClientId(FacesContext.getCurrentInstance());
Of course the UIInput could be changed to something more generic like UIComponent
stay tuned for my next blog which tells how I achieved proper visual indication