如果在Primefaces SelectOneMenu中未选择任何内容,如何禁用“提交”按钮

时间:2013-02-21 04:12:14

标签: jsf-2 primefaces

我有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>

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

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:5)

你最好替换

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

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

让jsf为你处理required ......


如果您确实要禁用该按钮,请使用#{bean.value}

像这样

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

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

答案 1 :(得分:1)

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