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>
> 
> 
> 

-- 
View this message in context: 
http://old.nabble.com/How-do-I-change-the-value-of-a-selectOneMenu-on-the-fly-tp26819601p26819977.html
Sent from the MyFaces - Users mailing list archive at Nabble.com.

Reply via email to