1

Based on this Im implementing a rich:autocomplete with a dynamic list to the autocomplete. What i want to do next is, when the user edits this field to update another field based on its value.

I've found various links and references declaring this is a bug, that it triggers when the form in used is submitted, workaraounds but from at least a year ago. here, here and here.

Fragment of my code:

<rich:autocomplete value="#{cotizacionBean.currentOpcionEditable.sumaAsegurada}" style="width:100px;" id="sumaAseguradora"
                              required="true" validatorMessage="#{msgs['global.etiqueta.sumaAseguradoraRequerida']}"
                              autocompleteMethod="#{cotizacionBean.getAutocompleteListSumaAsegurada}"
                              valueChangeListener="#{cotizacionBean.sumaAseguradaModificada}"
                              requiredMessage="#{msgs['global.etiqueta.sumaAseguradoraRequerida']}" converterMessage="#{msgs['global.etiqueta.sumaAseguradoraRequerida']}">
                 </rich:autocomplete>

And my bean:

public void sumaAseguradaModificada(){
    System.out.println("entro sumaAseguradaModificada");
}

So my questions are two: is this already fix? How can i do it?

BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555
jmlv21104
  • 89
  • 12

1 Answers1

0

Here's how I got that to work:

<a4j:jsFunction name="submitSearch"
    execute="sumaAseguradora"
    render="sumaAseguradora"
    action="#{cotizacionBean.sumaAseguradaModificada}" />
<rich:autocomplete style="width:100px;" id="sumaAseguradora"
    required="true" validatorMessage="#{msgs['global.etiqueta.sumaAseguradoraRequerida']}"
    autocompleteMethod="#{cotizacionBean.getAutocompleteListSumaAsegurada}"
    requiredMessage="#{msgs['global.etiqueta.sumaAseguradoraRequerida']}" converterMessage="#{msgs['global.etiqueta.sumaAseguradoraRequerida']}"
    onselectitem="submitSearch()"
    value="#{cotizacionBean.currentOpcionEditable.sumaAsegurada}">
</rich:autocomplete>

In the Bean, I had to change the signature of the method:

public Object sumaAseguradaModificada() {
   System.out.println("entro sumaAseguradaModificada");
   return "success";
}
Bob
  • 5,510
  • 9
  • 48
  • 80