【问题标题】:selectOneMenu change becomes inputText's not writableselectOneMenu 更改为 inputText 的不可写
【发布时间】: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


    【解决方案1】:

    您必须在浏览器控制台的网络部分检查 ajax 请求的响应。可能您遇到了异常,但您没有看到它。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2015-05-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多