“f:selectItem”下拉列表中的默认空白项



我正在创建一个下拉菜单。我正在使用诸如hideNoSelectionOption、noSelectionOption、itemLabel="和itemValue="#{null}"等属性来拥有一个默认值,该值是一个空白值,并且是页面加载时显示的第一项。相反,当页面加载时,显示的默认项是列表中的最后一项。我有一个修复是把一个空白的项目最后在列表中,但我不喜欢这个修复,因为我希望空白的项目是第一个在列表中,并在页面加载时显示的默认项目。有什么建议吗?

                 <tr class="contentRow">
                    <td><span> <h:selectOneMenu
                    styleClass="selectOneMenuLeft" id="menuProgramType" value="#{searchBean.selectedSearchType}"
                    onchange="javascript:displayDivs();" hideNoSelectionOption="true">
                    <f:selectItem noSelectionOption="true" itemLabel=""/>
                    <f:selectItem itemLabel="Item1"  />
                    <f:selectItem itemLabel="Item2" />
                    <f:selectItem itemLabel="Item3"  />
                    <f:selectItem itemLabel="Item4" />
                    </h:selectOneMenu></span></td>
                    <td><span> <h:selectOneMenu
                    styleClass="selectOneMenuLeft" id="menuSystemOfOriginType" value="#{searchBean.selectedSearchType}"
                    onchange="javascript:displayDivs();" hideNoSelectionOption="true" >
                    <f:selectItem itemLabel="" itemValue="#{null}"  noSelectionOption="true" />
                    <f:selectItem itemLabel="FirstItem"  />
                    <f:selectItem itemLabel="SecondItem" />
                    <f:selectItem itemLabel="LastItem"  />
                    </h:selectOneMenu></span></td>
                </tr>

您的所有项都没有值。因此,您的所有项目都匹配"空白"。的情况。客户端将显示选中的最后一个。

给条目一个合理的值。如果您打算使用标签作为值,那么就这样做。

<f:selectItem itemValue="Item1" />
<f:selectItem itemValue="Item2" />
<f:selectItem itemValue="Item3" />
<f:selectItem itemValue="Item4" />

即,当未指定时,项目标签将默认为项目值。

参见:

  • 我们的selectOneMenu wiki页面

与具体问题无关,即javascript:伪协议是不必要的。这是自1998年HTML4以来的默认设置。

相关内容

  • 没有找到相关文章

最新更新