【发布时间】:2017-04-18 18:09:16
【问题描述】:
在 XHTML 页面中,我使用的是 Primefaces,版本 3.5。在那里,我有一个selectOneMenu、2 个inputText 和其他可编辑的inputText 和其他selectOneMenu。当我更改第一个selectOneMenu 时,只读inputText 的值会更改。我必须使用 p:ajax 来影响这些 readony inputText 的。然而,奇怪的是,在此更改之后,更不可能键入甚至聚焦其他可编辑文件inputText。不过,可以更改其他selectOneMenu 的值。此外,即使在selectOneMenu 组件中,也无法使用 TAB 按钮更改焦点。只有通过鼠标点击才能改变焦点。
XHMTL 代码如下:
<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()")。
有人知道会发生什么吗?
谢谢,
拉斐尔·阿方索
【问题讨论】:
标签: jsf primefaces