You would need to implement it yourself I already added it to the wiki a long time back:
http://wiki.apache.org/myfaces/JavascriptWithJavaServerFaces Look at the "Using javascript and command links to submit a form from a control event" section On Wed, Jul 9, 2008 at 10:28 AM, Richard Yee <[EMAIL PROTECTED]> wrote: > Andrew, > Sorry to be dense, but is 'click' a JavaScript function in Trinidad, > or do I need to implement that function myself in the page? > > Thanks, > > Richard > > > On 7/9/08, Andrew Robinson <[EMAIL PROTECTED]> wrote: >> Oh, if you queue you own action event you have to use an action >> listener since selectOneChoice has no action or actionListener >> attributes. >> >> On Wed, Jul 9, 2008 at 9:18 AM, Andrew Robinson >> <[EMAIL PROTECTED]> wrote: >> > There is no way to have the selectOneChoice fire an action event, but >> > you can hack it by removing the autoSumbit. >> > >> > <tr:selectOneChoice onchange="click('commandLink')"> >> > </tr:selectOneChoice> >> > >> > <tr:commandLink id="commandLink" inlineStyle="display:none;" action="blah" >> > /> >> > >> > Then use the click function to raise the click event on the link. You >> > can also use the Trinidad PPR API to manually submit an event for the >> > commandLink. Just make sure you use the full clientId of the >> > commandLink. >> > >> > I have had some ideas on enhancing PPR with Trinidad and the ability >> > to generate events and wrap events on queuing, but even if ppl. agree >> > to the design, it would be a while before such a thing was released. >> > >> > You could also queue you own action event: >> > >> > public void onPropertyChange(PropertyChangeEvent evt) { >> > ActionEvent e = new ActionEvent(evt.getSource); >> > e.setPhaseId(PhaseId.INVOKE_APPLICATION); >> > e.queue(); >> > } >> > >> > -Andrew >> > >> > On Wed, Jul 9, 2008 at 6:07 AM, Richard Yee <[EMAIL PROTECTED]> wrote: >> >> Andrew, >> >> Thanks for your help. We are using JSF 1.1 so I don't think the >> >> f:setPropertyActionListener solution will work for us. I tried just >> >> putting tr:subform around the inputText and now it doesn't update it >> >> at all. Perhaps there is a different way to implement my page? >> >> The functionality that I am trying to achieve is to use a >> >> selectOneChoice component to select a person from a list of persons to >> >> edit. Currently, I am using a valueChangeListener in the >> >> selectOneChoice to detect when a person is selected and then update >> >> the input components with that persons information. This is where I am >> >> having the problem. I would like to avoid using the tomahawk solution >> >> since the project doesn't currently use tomahawk and I don't really >> >> want to add it just for this problem. Is there any way to have the >> >> selectOneChoice fire an action event? If I could do that, then I >> >> wouldn't need to use the value change listener. >> >> >> >> Thanks, >> >> >> >> Richard >> >> >> >> >> >> >> >> On Tue, Jul 8, 2008 at 10:37 PM, Andrew Robinson >> >> <[EMAIL PROTECTED]> wrote: >> >>> Value change listeners are fired during validation. >> >>> >> >>> What happens: >> >>> >> >>> 1) decode >> >>> 1a) select one choice decoded - submitted value set >> >>> 1b) input text decoded - submitted value set >> >>> 2) validation >> >>> 2a) select one choice converts submitted value >> >>> 2b) select one choice validates value >> >>> 2c) select one choice queues value change event (phase = ANY) >> >>> 2d) input text converts submitted value >> >>> 2e) input text validates value >> >>> 2f) input text queues value change event (phase = ANY) >> >>> 2g) value change events broadcast >> >>> 3) update model >> >>> 3a) select one choice updates value >> >>> 3b) input text updates value >> >>> >> >>> As you can see, it is useless to set values in a value change >> >>> listeners that have UIInput components updating them. In fact, it is >> >>> very dangerous to make any changes during a value change event, >> >>> because at that phase, there is absolutely no guarantee that the >> >>> updating of the model will ever happen. Therefore if your bean sets a >> >>> property and something short circuits the lifecycle, then the >> >>> "transaction" is broken. >> >>> >> >>> I would suggest one of: >> >>> 1) use the myfaces tomahawk sandbox valueChangeNotifier that runs >> >>> during update, not validation: >> >>> http://myfaces.apache.org/sandbox/tlddoc/s/valueChangeNotifier.html >> >>> 2) use f:setPropertyActionListener instead of using value change events >> >>> 3) use tr:subForm around the controls to make sure that when the >> >>> selectOneChoice is submitted, the inputText is not submitted (note >> >>> that I don't think that this solution will work for browsers that do >> >>> not support AJAX) >> >>> >> >>> -Andrew >> >>> >> >>> On Tue, Jul 8, 2008 at 10:14 PM, Richard Yee <[EMAIL PROTECTED]> wrote: >> >>>> Hi, >> >>>> I'm having a problem updating the value of a inputText component from >> >>>> the value change listener of a selectOneChoice component. I have the >> >>>> following in my jspx page: >> >>>> >> >>>> <f:view> >> >>>> <tr:document title="Index"> >> >>>> <trh:body> >> >>>> <tr:form> >> >>>> <tr:selectOneChoice id="memberSelect" >> >>>> value="#{myBacking.selectValue}" >> >>>> valueChangeListener="#{myBacking.changeListener}" >> >>>> autoSubmit="true" > >> >>>> <tr:selectItem label="Item 1" value="1"/> >> >>>> <tr:selectItem label="Item 2" value="2"/> >> >>>> <tr:selectItem label="Item 3" value="3"/> >> >>>> </tr:selectOneChoice> >> >>>> <tr:inputText value="#{myBacking.line2}" label="Line 2:" >> >>>> partialTriggers="memberSelect" id="line2"/> >> >>>> >> >>>> </tr:form> >> >>>> </trh:body> >> >>>> </tr:document> >> >>>> </f:view> >> >>>> >> >>>> My value change listener in my backing bean is >> >>>> public void changeListener(ValueChangeEvent evt) { >> >>>> setLine2("XXXX"); } >> >>>> } >> >>>> When I run the page, if I only change the value of selectOneChoice, >> >>>> then "XXXX" gets populated in the input text box as I expected. >> >>>> However, if I type something in the inputText component and then >> >>>> change the value of the selectOneChoice, the value that I typed >> >>>> remains in the input text box. If I then change the value of the >> >>>> select box again, then "XXXX" gets populated in the text box. I'm >> >>>> wondering why it takes a second time through the value Change Listener >> >>>> for the input text component to be updated with the value that is set >> >>>> in the listener method. >> >>>> >> >>>> Thanks for any help or suggestions in advance, >> >>>> >> >>>> Richard >> >>>> >> >>> >> >> >> > >> >

