我的问题几乎说明了一切。我想在selectOneMenu中有一个占位符文本,但我认为没有任何属性可以指定它。那么如何才能拥有一个占位符呢?
我尝试使用<p:watermark>
,如下所示,但它不起作用。
<p:selectOneMenu id="fooMenu">
<f:selectItem itemLabel="foo" itemValue="foo"/>
<f:selectItem itemLabel="goo" itemValue="goo"/>
</p:selectOneMenu>
<p:watermark value="Select" for="fooMenu"></p:watermark>
答案 0 :(得分:11)
默认情况下,标准HTML <select>
元素默认不支持,因此JSF中也没有设置它。
然而,你可以在itemDisabled
和一些CSS和jQuery的帮助下模拟。
<p:selectOneMenu widgetVar="menu" styleClass="with-placeholder" panelStyleClass="hide-disabled" onchange="menu.jq.removeClass('with-placeholder')">
<f:selectItem itemLabel="Select" itemDisabled="true" />
<f:selectItem itemLabel="foo" itemValue="foo"/>
<f:selectItem itemLabel="goo" itemValue="goo"/>
</p:selectOneMenu>
和
.ui-selectonemenu.with-placeholder .ui-selectonemenu-label {
color: #ccc;
}
.ui-selectonemenu-panel.hide-disabled .ui-selectonemenu-list-item.ui-state-disabled {
display: none;
}
这是video demo。