私はJSF 2.0とPrimeFacesライブラリを使用しています。私はいくつかの入力を持つページを持っています(その中に2つのp:カレンダーコンポーネントがあります)。 2番目の日付が最初の日付より前でないことを検証したいが、この検証をクライアントで行い、検証が失敗した場合は、フォームを送信せず、カレンダーに属するh:メッセージを表示しない。 PrimeFacesのカレンダーにはminDate属性がありますが、これはグラフィカルカレンダーを使用して前の日付を選択することはできませんが、前の日付と検証パスを入力することはできます。だから私もjavascriptを使用する必要があります。 "onclick"イベントをcommandButonに追加して、検証を実行するjs関数を呼び出すことができますが、JSFがフォームを送信しないようにするにはjavascriptの検証に失敗しましたか?どのようにしてh:メッセージコンポーネントを表示できますか?私はサーバーに行くことを避けたい。 ありがとう!JSFでjavascriptを使用するクライアント側の検証
これは、カレンダーのコードです:
<p:calendar id="dateFrom" value="#{reqAbsences.dateFrom}"
navigator="true" showOn="button"
required="true" pattern="dd/MM/yyyy"
onSelectUpdate="dateTo dateFromVal hourInput timeFrom timeTo"
selectListener="#{reqAbsences.handleDateFromSelect}"
mindate="#{reqAbsences.today}" >
<f:validator validatorId="DateValidator"/>
</p:calendar>
<p:message id="dateFromVal" for="dateFrom" showSummary="false"/>
<h:outputLabel value="#{text['global.toDate']}"/>
<p:calendar id="dateTo" value="#{reqAbsences.dateTo}"
navigator="true" showOn="button"
onSelectUpdate="dateToVal"
selectListener="#{reqAbsences.handleDateToSelect}"
pattern="dd/MM/yyyy" required="true" mindate="#{reqAbsences.dateFrom}">
<f:validator validatorId="DateValidator"/>
</p:calendar>
<p:message id="dateToVal" for="dateTo" showSummary="false"/>
に役立ちます。私はcommandButtonのonclickプロパティから、またh:フォームのonsubmitプロパティからjsを呼び出してみました。私はどこからjsと呼ぶべきですか? – Damian
どこからでも電話をかけることができますonclick = "return compareDates();" – Maddy
ありがとう@マドフ!それは働く – Damian