myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Julián Osorio Amaya EuphoriaIT <joso...@euphoriait.com>
Subject Re: How do I change the value of a selectOneMenu on the fly
Date Thu, 17 Dec 2009 15:05:18 GMT
laredotornado escribió:
> Could you show the method of the Javascript submit() function that you are
> talking about?  I'm having a hard time imagining how what you list is
> different than submitting the form.  
>
> Thanks, - Dave
>
>
>
> Julián Osorio Amaya EuphoriaIT wrote:
>   
>> laredotornado escribió:
>>     
>>> Thanks, Julian.  I have a follow-up question regarding your solution. 
>>> You
>>> include an onchange Javascript handler where you submit the form, at
>>> least,
>>> I assume that's what submit() does.  How do I submit the form, keep it on
>>> the same page, preserve the values that were already entered, and not
>>> prompt
>>> validation?  Is it as simple as "this.form.submit();"?
>>>
>>> Thanks, - Dave
>>>
>>>
>>>
>>> Julián Osorio Amaya EuphoriaIT wrote:
>>>   
>>>       
>>>> laredotornado escribió:
>>>>     
>>>>         
>>>>> Hi,
>>>>>
>>>>> I'm using MyFaces 1.1.6 and Tomahawk 1.1.9.  I have this selectOneMenu
>>>>> ...
>>>>>
>>>>> 			  	<h:selectOneMenu required="true"
>>>>> validator="#{historicalTour.validateTime}" styleClass="hourMenu"
>>>>> id="historicalTour1st_Preference_Hour"
>>>>> value="#{historicalTour.prefs[0].time}">
>>>>> 			    	<f:selectItems value="#{historicalTour.timePrefItems}"/>
>>>>> 			  	</h:selectOneMenu>
>>>>>
>>>>> When another text field on the page changes value, I would like to
>>>>> re-populate the select menu with new options.  I have discovered I just
>>>>> can't simply do that with Javascript, because when I submit the form
I
>>>>> get a 
>>>>>
>>>>> "Value is not a valid option"
>>>>>
>>>>> error.  Any ideas how I can change my select menu options and keep JSF
>>>>> happy?
>>>>>
>>>>> Thanks, - Dave
>>>>>   
>>>>>       
>>>>>           
>>>> You can use a Value Change Listener in your text field like this
>>>> <h:inputText valueChangeListener="#{BackingBean.methodName}" 
>>>> onchange="submit()" />
>>>>
>>>> in your backing bean
>>>>
>>>> public BackingBean implements ValueChangeListener {
>>>>      public void processValueChange(ValueChangeEvent valueChangeEvent) {
>>>>     }
>>>>
>>>>     public void methodName(ValueChangeEvent vce) {
>>>>        //change your select menu options
>>>>     }
>>>> }
>>>>
>>>> -- 
>>>> <?xml version = '1.0' encoding = 'UTF-8'?>
>>>> <firma>
>>>> 	<nombre>Julian Osorio Amaya</nombre>
>>>> </firma>
>>>>
>>>>
>>>>
>>>>     
>>>>         
>>>   
>>>       
>> the function of the javascript event "onchange" is invoke the method in 
>> the valueChangeListener="#{BackingBean.yourMethod}"
>> but it's different from the submit action on <h:commandButton 
>> action="#{BackingBean.submitForm}" />
>>
>> -- 
>> <?xml version = '1.0' encoding = 'UTF-8'?>
>> <firma>
>> 	<nombre>Julian Osorio Amaya</nombre>
>> </firma>
>>
>>
>>
>>     
>
>   
there's no body for the submit() function.
Do a little test adding this to one of your forms
<h:inputText value="#{BackingBean.value}" 
valueChangeListener="#{BackingBean.method}" onchange="submit()" />
Every time you change the value in the <h:inputText /> tag there's a 
submit that invokes the valueChangeListener's method
but it's different from a "real" form submit invoked by <h:commandButton 
/> tag

-- 
<?xml version = '1.0' encoding = 'UTF-8'?>
<firma>
	<nombre>Julian Osorio Amaya</nombre>
</firma>


Mime
View raw message