您好,我遇到以下代码问题:
<h:selectOneMenu id="selectTipoAutorizacion"
value="#{autorizacion.codigoTipoAutorizacion}"
required="true">
<f:selectItems
value="#{cc.attrs.controller.getListaTiposAutorizacion(autorizacion)}"
var="tipoAutorizacion"
itemLabel="#{tipoAutorizacion.nombreTipoAutorizacion}"
itemValue="#{tipoAutorizacion.id.codigoTipoAutorizacion}" />
<a4j:ajax event="change" execute="@this"
listener = #{myListener.listener} render="selectAutorizador" />
</h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)
问题是默认选择的值始终是标记的第一个.这会打扰用户,导致根据所选项目值加载一些数据...但是,直到更改事件发生时才会加载该信息(a4j:ajax标记),所以现在用户必须选择另一个项目,然后选择前一个以查看默认的项目相关信息.
我通过在开头加载默认的项目相关信息来解决问题,但是用户不喜欢这个.因为它可能导致混乱.所以问题是......我怎么能避免这种行为?我想要的是selectOneMenu加载一个明确的值(如果没有任何f:selectItems).非常感谢.
您的字段是必填字段,在这种情况下,默认情况下应该没有任何效果.将空的selectItem添加到列表顶部:selectItems.add(0, new SelectItem("", ""))
; 或者这样:<f:selectItem itemValue="" itemLabel="" />
默认情况下,它会选择空的selectItem.用户将被迫做出选择,因为required="true"
不允许空选择.
归档时间: |
|
查看次数: |
10430 次 |
最近记录: |