2

これは私のフォームです..

<p:panel id="panel" header="Portfolio Transaction">
            <p:messages id="msgs" />

            <p:panelGrid columns="7" id="transactionPanel" style="display: inline-block;">
                <f:facet name="header"> 
                    Register New Trade
                </f:facet>

                <h:outputLabel for="tipsSuggestionBoxId" value="Company Name:*"></h:outputLabel>

                <h:outputText value="Date:*" />

                <h:outputText value="Type:*" />

                <h:outputText value="Quantity:*" />

                <h:outputText value="Price:*" />

                <h:outputText value="Brokerage:" />

                <h:outputText value="Notes:" />

                <p:autoComplete id="tipsSuggestionBoxId"
                    completeMethod="#{portfolioTransactionBean.autoSelectCompany}"
                    value="#{portfolioTransactionBean.txnCurrentRecord.companyName}"
                    minChars="3" nothingLabel="No similar company found"
                    requestDelay="1" minQueryLength="3" required="true"
                    requiredMessage="Company Name Cannot be empty">
                </p:autoComplete>

                <p:calendar id="from_date" size="10" required="true"
                    requiredMessage="Date Cannot be empty"
                    value="#{portfolioTransactionBean.txnCurrentRecord.umptTransDate}"
                    mode="popup" showOn="both" pattern="dd/MM/yyyy"
                    popupIconOnly="true" readonly="#{facesContext.renderResponse}">
                </p:calendar>

                <p:selectOneMenu id="tranType"
                    value="#{portfolioTransactionBean.txnCurrentRecord.umptTransType}">
                    <f:selectItem itemLabel="Transaction Type" itemValue="" />
                    <f:selectItem itemLabel="Buy" itemValue="Buy" />
                    <f:selectItem itemLabel="Sell" itemValue="Sell" />
                </p:selectOneMenu>


                <p:spinner id="transQuntity" required="true"
                    value="#{portfolioTransactionBean.txnCurrentRecord.umptQty}" min="1"    label="Quanity" size="5"
                    validatorMessage="Field Is mandatory" />

                <p:spinner id="transPrice" required="true" size="5"
                    value="#{portfolioTransactionBean.txnCurrentRecord.umptPrice}"
                    label="Price"
                    validatorMessage="Field Is mandatory" />



                <p:spinner id="brokerage" size="5"
                    value="#{portfolioTransactionBean.txnCurrentRecord.umptBrokerage}"  />

                <h:inputText
                    value="#{portfolioTransactionBean.txnCurrentRecord.umptNotes}" />

                <f:facet name="footer">
                    <p:commandButton value="Save Transaction " icon="ui-icon-check"
                        action="#{portfolioTransactionBean.savePortfolioTransaction}"
                        update="panel" style="float:right;right:20%;">
                        <p:resetInput target="transactionPanel" />
                    </p:commandButton>
                    <p:spacer width="100" height="10" />
                    <p:commandButton value="Clear" update="transactionPanel"
                        process="@this">
                        <p:resetInput target="transactionPanel" />
                    </p:commandButton>
                </f:facet>


            </p:panelGrid>

ユーザーが日付や会社名を入力していないなどのフォーム検証が失敗した後、適切なメッセージを表示できますが、その後、キーボードから値を入力できません。コードの問題は誰でも知っています。

この問題は、クリアボタンをクリックしても検証が失敗した場合にのみ発生しません。同じ問題が発生します。誰かがこの問題を抱えていますか?

4

1 に答える 1

0

はい、プライムフェイスの一部のコンポーネントには当てはまります。唯一の解決策は、問題のあるコンポーネントを置き換える他のコンポーネントを使用することです。または、エラーが発生した場合はエラーを表示し、ユーザーがエラーメッセージを受け取った場合に画面全体を更新するコードを記述します。もちろん、ユーザーはすべての詳細を再度入力する必要があります。

于 2013-02-12T09:35:40.017 に答える