0

首先,我是 AJAX 和 JSF 的新手,所以请原谅我的无知。我正在对我们现有应用程序之一的问题进行故障排除。基本上,如果另一个输入字段中有值,我们希望重新呈现某些输入字段。代码如下

<rich:column  valign="top" align="center">

    <f:facet name="header">QTY Locos   <br/>Staged</f:facet>
    <h:inputText id="qtyLocos" value="#{dataItem.qtyLocosStaged}" width="80px" disabled="#{dataItem.rejected or !stagingDetailBean.editable}" styleClass="inputValidNumber">
         <rich:jQuery selector="#qtyLocos" timing="onload" query="numeric" />
         <a4j:support event="onchange" limitToList="true" reRender="facesMessagePanel, locoType, teleRequired, crewQualification" />
    </h:inputText>
</rich:column>
<rich:column  valign="top" styleClass="inputValid" id="locoType" align="center">
    <f:facet name="header">Loco Type</f:facet>
    <h:selectOneMenu value="#{dataItem.locoType}"   disabled="#{dataItem.qtyLocosStaged eq 0 or dataItem.rejected or !stagingDetailBean.editable}">
        <f:selectItem itemValue="" itemLabel="" />
        <f:selectItem itemValue="6E" itemLabel="6E" />
        <f:selectItem itemValue="6E1" itemLabel="6E1" />
        <f:selectItem itemValue="7E" itemLabel="7E" />
    </h:selectOneMenu>
</rich:column>
<rich:column valign="top" styleClass="center" id="teleRequired">
    <f:facet name="header">Telemeter<br/>Required</f:facet>
    <h:selectBooleanCheckbox value="#{dataItem.telemeterRequired}"  disabled="#{dataItem.qtyLocosStaged eq 0 or dataItem.rejected or !stagingDetailBean.editable}"/>
</rich:column>

在某些浏览器上,当您在输入字段 id=qtyLocos 中输入值时,下拉列表和复选框将变为活动状态,因为禁用的条件现在为 false。但是在某些浏览器中,当您输入一个值并且 onchange 事件启动时,它会物理删除下拉列表和复选框的 HTML 标记。所以我的页面呈现完全不正确。

有人知道某些版本的 chrome 和 ajax 的问题可以解释这种行为吗?

有关此问题的更多信息。列标题不会消失,它们仍然可见。只是缺少输入,将这些字段之后的所有字段都向左移动(然后不再与其列名对齐)

好的,这个问题现在变得越来越奇怪了。这只发生在公司域上的机器上。任何未登录域的机器都不会发生这种情况。公司政策会影响这些东西的呈现方式吗?

4

0 回答 0