【问题标题】:How to not display p:dialog on selecting "Select One" selectitem in PrimeFaces如何在 PrimeFaces 中选择“选择一个”选择项时不显示 p:对话框
【发布时间】:2017-06-02 18:54:28
【问题描述】:

我有一个 p:selectOneMenu 并且在该值列表中,第一个值是“Select One”,其他值是从 db 获取的实际值。

当用户选择其他值时,会显示一个对话框并获取相应的值,但是,之后如果用户选择“选择一个”,那么也会显示该对话框。在这里,当用户从下拉列表中选择“选择一个”时,我不想显示对话框。

Xhtml代码:

<p:selectOneMenu id="drp_modify"
        value="#{BackingBean.Name}" panelStyle="width:180px"
        effect="fade" style="width:180px" filter="true"
        filterMatchMode="startsWith" onchange="PF('dlg_modify').show();"
        title="Add">
        <p:ajax listener="#{BackingBean.onNameChange}"
            update="Name_ID, address" />
        <f:selectItem itemLabel="Select One" itemValue="" noSelectionOption="true" />
        <f:selectItems value="#{BackingBean.nameItemList}" />
    </p:selectOneMenu>

<p:dialog header="Modify" widgetVar="dlg_modify" resizable="false">

//// some code

</p:dialog>

【问题讨论】:

    标签: jsf primefaces jsf-2


    【解决方案1】:

    您可以使用 JavaScript 检查组合框的当前值。

    你可以写而不是onchange="PF('dlg_modify').show();"

    onchange="if(document.getElementById('yourFormId:drp_modify_input').value != '') PF('dlg_modify').show();"
    

    其中yourFormId 是表单的ID,条件是在f:selectItem 中作为itemValue 参数给出的值。在您的情况下,它是''

    【讨论】:

    • @Neerajkumar 即使您设置了表单的 ID?奇怪,对我来说效果很好
    猜你喜欢
    • 1970-01-01
    • 2015-02-23
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    • 2019-02-11
    相关资源
    最近更新 更多