2016-06-09 7 views
2

Ich habe ein Selectonemenü von presefaces, dem Attribut editable zugewiesen zu true. Wenn ich nun einen Wert aus dem Dropdown-Menü auswähle, sollte das bearbeitbare Attribut auf "false" geändert werden.Wie editierbares Attribut von selectonemenu je nach dem aus dem Dropdown-Menü gewählten Ergebnis geändert werden kann

Kann jemand bitte vorschlagen, was getan werden muss, um das Attribut zu false zu ändern, wenn ein bestimmtes Ergebnis von Dropdown ausgewählt wird.

Ich habe das folgende JavaScript verwendet, um das gleiche zu tun, aber fehlgeschlagen.

function disbalingFunction() { 
    if (($("#dashboardFormId\\:oneMenu1 option:selected").text() == 'Never') || ($("#dashboardFormId\\:oneMenu1 option:selected").text() == 'Default')) { 
     $('#dashboardFormId\\:oneMenu1').attr("editable", "false"); 
    } 
} 

Antwort

0

Versuchen Ajax zu verwenden, um Ihren Wert eine Funktion Hexe ändern, so zu nennen:

<p:selectOneMenu id="oneMenu1" editable="#{dashboardAction.myBooleanValue}" style="width:100px" value="#{dashboardAction.selectRefreshRate}"> 
     <p:ajax event="change" update="oneMenu1" 
       listener="#{dashboardAction.functionChangeToFalse()}" /> 
     <f:selectItem itemLabel="#{dashboardAction.vehicleAvail}" itemValue="#{dashboardAction.vehicleAvail}" /> 
     <f:selectItems value="#{dashboardAction.getRRList()}" /> 
    </p:selectOneMenu> 

Viel Glück

0

Haben Sie versucht, ein Ajax-Ereignis in selectonemenu tag einzufügen?

<p:ajax event="valueChange" update="@form" oncomplete="disbalingFunction()" 
      listener="#{SOMETHING_METHOD_TO_CALL}" />