selectOneMenu更改变为inputText不可写

时间:2017-04-18 18:09:16

标签: jsf primefaces

在XHTML页面中,我使用的是Primefaces,版本3.5。在那里,我有一个selectOneMenu,2 inputText个只读和其他可编辑的inputText其他selectOneMenu&#39} 。当我更改第一个selectOneMenu时,只会更改只读inputText的值。我必须使用p:ajax来影响这些序言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代码,当我关注输入时,它是immedialety模糊(onfocus="this.blur()")。

任何人都知道可能会发生什么?

谢谢,

Rafael Afonso

2 个答案:

答案 0 :(得分:0)

您必须在浏览器控制台的网络部分检查来自ajax请求的响应。可能你得到一个例外而你却没有看到它。

答案 1 :(得分:0)

@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>