2

私の質問はほとんどすべてを語っています。selectOneMenuにプレースホルダーテキストを入れたいのですが、それを指定する属性がないと思います。では、どうすればプレースホルダーを持つことができるのでしょうか?

以下のようにa を使用してみ<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>
4

1 に答える 1

12

実際、デフォルトでは標準<select>の HTML 要素ではサポートされていないため、JSF にはそれを設定するものもありません。

ただし、CSS と jQuery を少し使用してシミュレートすることはできます。itemDisabled

<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;
}

ここにビデオデモがあります。

于 2013-02-19T11:24:48.780 に答える