如何根据从下拉列表中选择的结果更改selectonemenu的可编辑属性

时间:2016-06-09 10:47:01

标签: javascript jquery primefaces

我有一个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");
    }
}

2 个答案:

答案 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>
祝你好运