2

我有一个p:selectOneMenu第一个元素是字符串“请选择”,其他项目是要选择的列表。我可以在选择“请选择”时禁用提交按钮并在选择其他元素时启用按钮吗?我知道itemDisabled可以使用,但这不是我的要求。

<p:selectOneMenu value="#{bean.value}" id="selectId"
    filter="true" required="true" converter="itemConverter"
    filterMatchMode="contains" height="120">
    <f:selectItem itemLabel="Please select"/>
    <f:selectItems value="#{listBean.selectItemList}"></f:selectItems>
</p:selectOneMenu>

本质上,我希望在选择第一个项目时禁用提交按钮。

有人可以帮忙吗?

4

2 回答 2

5

你最好换

<f:selectItem itemLabel="Please select"/>

<f:selectItem noSelectionOption="true" itemLabel="Please select"></f:selectItem>

让jsfrequired为你处理......


如果您真的想禁用该按钮,只需使用#{bean.value}

像这样

<p:commandButton id="myButonId" disabled="#{empty bean.value}"....

并添加<p:ajax update="myButonId"到您的<p:selectOneMenu

于 2013-02-21T07:04:05.007 回答
1

您好 Rajath,为什么不能在 backingbean 中使用SelectItemList并从 backingbean 向该列表添加标签和值?这样做的好处是,您可以将“请选择”添加为 SelectItemList 中的第一个标签,并将值添加为 null。因此,为了禁用 SubmitButton,您可以有一个布尔标志,可以根据 SelectItemList 中的值设置为 true 或 false(使用valuechangeListener并在该方法中相应地更新布尔标志)。希望此解决方案对您有所帮助。

于 2013-02-21T07:19:16.643 回答