2

Primefaces カレンダー コンポーネントを使用しましたが、フォーム内で機能しません。テキスト フィールドをクリックすると、ポップアップが表示されるとすぐに消えます。外部のh:formポップアップが表示されますが、全体的なコンポーネントはまだ月/年が選択できないように機能しません。

以下は、advSearch.xhtmlテンプレートがMaster.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 <ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
template="/MasterPage/Master.xhtml">

<ui:define name="Search">

    <h:form id="advSearch" onmousemove="removeExtra()">

            <p:layout style="width:1218px;height:558px;" id="layout">



                <p:layoutUnit position="center" styleClass="resultDiv">

                    <div class="advDiv">

                        <div class="advHeader">Find documents That Have...</div>
                        <div class="advBody">

                            <table>
                                <tr>
                                    <td><h:outputText styleClass="advLabel" value="Subject"></h:outputText></td>
                                    <td><h:inputText
                                            value="#{advanceSearchController.subject}"
                                            styleClass="txtfield"
                                            onkeypress="if (event.keyCode == 13) { document.getElementById('advSearch:advButton').click(); return false; }"></h:inputText>
                                    </td>
                                </tr>


                                <tr>
                                    <td><h:outputText styleClass="advLabel" value="Signed By"></h:outputText></td>
                                    <td><h:inputText
                                            value="#{advanceSearchController.signBy}"
                                            styleClass="txtfield"
                                            onkeypress="if (event.keyCode == 13) { document.getElementById('advSearch:advButton').click(); return false; }"></h:inputText></td>
                                </tr>
                                <tr>
                                    <td><h:outputText styleClass="advLabel"
                                            value="Archived From"></h:outputText></td>
                                    <td><p:calendar styleClass="txtfield" mode="popup"
                                            navigator="true" yearRange="1900:2015" pattern="MM/dd/yyyy"
                                            converter="CalendarDateStringConverter"
                                            value="#{advanceSearchController.fromdate}" /></td>
                                </tr>
                                <tr>
                                    <td><h:outputText styleClass="advLabel" value="To"></h:outputText></td>
                                    <td><p:calendar styleClass="txtfield" mode="popup"
                                            navigator="true" yearRange="1900:2015" pattern="MM/dd/yyyy"
                                            converter="CalendarDateStringConverter"
                                            value="#{advanceSearchController.todate}" /></td>
                                </tr>
                            </table>
                            <h:commandButton id="advButton" styleClass="btn"
                                value="Advanced Search"
                                action="#{advanceSearchController.advanceSearch}"
                                style="background-color:#FEAA41;background-image:none;color:white;font-weight:bold;"></h:commandButton>
                        </div>
                    </div>

                </p:layoutUnit>
            </p:layout>
        </div>

    </h:form>

</ui:define>

どんな助けでも大歓迎です。

4

1 に答える 1

0

コードは問題ないように見えますが、フォームで呼び出した JS 関数が 1 つありonmousemove="removeExtra()"ます。
あなたが言ったように、ポップアップがすぐに消えたということは、それが来てから消えたことを意味します。
2つのことを確認してください
(1)カレンダーフィールドをクリックした後にカーソルを移動するとフィールドが消えます(つまり、クリックして消えるかどうかを確認してください。そうでない場合は、カーソルを移動して確認してください。JS関数のonmouseoverイベントを呼び出したためです。マウスの動きの問題です)
(2)このremoveExtra()関数を削除してから確認してください

于 2013-03-19T11:01:29.867 に答える