あなたはJavaScriptを使ってそれを行うことができるはずです(クライアント側もそうです)。 Client API docを見ると、rich:カレンダーコンポーネントによって提供されるgetCurrentDate()
JavaScript関数があることがわかります。
JavaScriptのondateselected
とoninputchange
のJavaScript関数を起動して、getCurrentDate()
メソッドを使用し、現在の日付と比較する必要があります。そのような
何か(私はテストしていない):
<h:form id="myForm">
...
<rich:calendar id="myCalendar" enableManualInput="true" value="#{home.born}" datePattern="dd/MM/yyyy"
ondateselected="checkDate();" oninputchange="checkDate();"/>
...
と
<script type="text/javascript">
function checkDate() {
var choosenDate = $("myForm:myCalendar").component.getCurrentDate();
var now = new Date();
// Calculate the difference between the 2 dates.
// This method may be modified if you want to only compare date (i.e. not time).
var diff = choosenDate.getTime() - now.getTime();
if (diff < 0) {
// choosenDate is before today
alert("Error in the selected date!");
// Do what you want here...
}
}
</script>
と
カレンダーアイコンを使用して日付を選択する場合にのみ、クライアント側の検証を行います。日付を入力すると、クライアント側の検証がバイパスされます。 –