我有一个selectfacemenu的primefaces,其属性editable赋值为true。现在,如果我从下拉列表中选择一个值,则editable属性应更改为false。
<p:selectOneMenu id="oneMenu1" editable="true" style="width:100px" value="#{dashboardAction.selectRefreshRate}">
<f:selectItem itemLabel="#{dashboardAction.vehicleAvail}" itemValue="#{dashboardAction.vehicleAvail}" />
<f:selectItems value="#{dashboardAction.getRRList()}" />
</p:selectOneMenu>
有人可以建议在选择下拉列表的特定结果时,将属性更改为false需要做什么。
我使用以下JavaScript执行相同操作但失败。
function disbalingFunction() {
if (($("#dashboardFormId\\:oneMenu1 option:selected").text() == 'Never') || ($("#dashboardFormId\\:oneMenu1 option:selected").text() == 'Default')) {
$('#dashboardFormId\\:oneMenu1').attr("editable", "false");
}
}
答案 0 :(得分:0)
您是否尝试将ajax事件插入selectonemenu标记?
<p:ajax event="valueChange" update="@form" oncomplete="disbalingFunction()"
listener="#{SOMETHING_METHOD_TO_CALL}" />
答案 1 :(得分:0)
尝试使用ajax调用一个函数来改变你的值:
<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>
祝你好运