Jsf 选择一个菜单更改成为输入文本';它不可写
在XHTML页面中,我使用的是Primefaces,版本3.5。在那里,我有一个Jsf 选择一个菜单更改成为输入文本';它不可写,jsf,primefaces,Jsf,Primefaces,在XHTML页面中,我使用的是Primefaces,版本3.5。在那里,我有一个selectOneMenu,2个inputText,它们是只读的,其他可编辑的inputText,以及其他selectOneMenu。当我更改第一个selectOneMenu时,只读inputText的值将更改。我必须使用p:ajax来影响这些readonyinputText。然而,奇怪的是,在这一更改之后,键入甚至聚焦其他可编辑的inputText,是不可能的。不过,也可以更改其他selectOneMenu的值。此
selectOneMenu
,2个inputText
,它们是只读的,其他可编辑的inputText
,以及其他selectOneMenu
。当我更改第一个selectOneMenu
时,只读inputText
的值将更改。我必须使用p:ajax
来影响这些readonyinputText
。然而,奇怪的是,在这一更改之后,键入甚至聚焦其他可编辑的inputText
,是不可能的。不过,也可以更改其他selectOneMenu
的值。此外,即使在selectOneMenu
组件中,也无法再使用TAB按钮更改焦点。只有通过鼠标点击,才有可能改变焦点。
XHTML代码如下所示:
<p:panelGrid id="pnlDadosAparelhosArquivo" styleClass="noBorders"
style="width: 100%;">
<p:row>
<p:column style="width: 50%; vertical-align: top">
<p:selectOneMenu id="selSubTipo"
value="#{boObjetosMB.selectedIdSubtipoObjetoLista}"
styleClass="select295" required="true">
<f:selectItem itemValue=""
itemLabel="#{m['label.item.selecione']}" />
<f:selectItems value="#{boObjetosMB.colSubtiposSim}" />
<p:ajax event="change" update="descrSubtipoObjeto descrTipoObjeto" />
</p:selectOneMenu>
</p:column>
<p:column style="width: 50%;">
<!-- Not related -->
</p:column>
</p:row>
<!-- The disabled inputText's to be affected by selSubTipo changing. -->
<p:row id="rowSubtipo">
<p:column>
<p:inputText value="#{boObjetosMB.descrSubtipoObjeto}"
disabled="true" id="descrSubtipoObjeto" styleClass="texto290"
style="text-transform: uppercase;" />
</p:column>
<p:column>
<p:inputText value="#{boObjetosMB.descrTipoObjeto}" disabled="true"
id="descrTipoObjeto" styleClass="texto290"
style="text-transform: uppercase;" />
</p:column>
</p:row>
<!-- The disabled inputText's to be *NOT* affected by selSubTipo changing. -->
<p:row>
<p:column>
<p:inputText id="txtNotaFiscal"
value="#{boObjetosMB.arquivoObjetos.notafiscal}"
styleClass="texto290" />
</p:column>
<p:column>
<p:inputText id="textQuantidade"
value="#{boObjetosMB.objeto.quantidade}" maxlength="8"
styleClass="texto290" required="true">
</p:inputText>
</p:column>
</p:row>
</p:panelGrid>
我已经验证了在呈现的HTML输入中没有添加readonly或disabled属性。实际上,它们保持不变
这就像添加了一些javascript代码,当我聚焦一个输入时,它会立即模糊(onfocus=“this.blur()”
)
有人知道会发生什么吗
谢谢
Rafael Afonso您必须在浏览器控制台的网络部分检查来自ajax请求的响应。可能您遇到了一个异常,但您没有看到它。@DavidMantilla:正如您所建议的,我看到了ajax响应,但显然没有任何异常:
<changes>
<update id="form:descrSubtipoObjeto">
<![CDATA[
<input id="form:descrSubtipoObjeto" name="form:descrSubtipoObjeto" type="text"
value="Telefone celular" disabled="disabled" style="text-transform: uppercase;"
class="ui-inputfield ui-inputtext ui-widget ui-state-default ui-corner-all ui-state-disabled texto290" />
<script id="form:descrSubtipoObjeto_s" type="text/javascript"><!--
PrimeFaces.cw('InputText','widget_form_descrSubtipoObjeto',{id:'form:descrSubtipoObjeto'});
//--></script>
]]>
</update>
<update id="form:descrTipoObjeto">
<![CDATA[
<input id="form:descrTipoObjeto" name="form:descrTipoObjeto" type="text"
value="Telecomunicação" disabled="disabled" style="text-transform: uppercase;"
class="ui-inputfield ui-inputtext ui-widget ui-state-default ui-corner-all ui-state-disabled texto290" />
<script id="form:descrTipoObjeto_s" type="text/javascript">
<!--
PrimeFaces.cw('InputText','widget_form_descrTipoObjeto',{id:'form:descrTipoObjeto'});
//--></script>
]]>
</update>
<update id="javax.faces.ViewState">
<![CDATA[vFKt6AyMKaC9xPonL64tq0iGsxavgotXF7p2tRUDh/iNY0ONSH6BeAp7RMYstRq6elln1g2GqDwlZEL6ElKAlM+c3HYww/UrMNS41Kbh4QsnGQWu6l61XlbYmSTCNAk2JPDN0EODhIlKAgta]]>
</update>
</changes>
]]>
]]>