/** * 驗證手動輸入的日期是否符合yyyymmdd格式 */ function checkDate() { var date=trim(event.srcElement.value); //允許爲空 if(0 == date.length) { return true; } var year,month,day; //日期格式:yyyymmdd var datePat = /^(\d{4})(\d{2})(\d{2})$/; var matchArray = date.match(datePat); if(matchArray == null) { //date + "不符合yyyymmdd日期格式,請修改!"; alert(date + "\u4e0d\u7b26\u5408yyyymmdd\u65e5\u671f\u683c\u5f0f\uff0c\u8bf7\u4fee\u6539\uff01"); event.srcElement.focus(); event.srcElement.select(); return false; } year = matchArray[1]; month = matchArray[2]; day = matchArray[3]; if (1900 > year) { //"年值不能小於1900年,請修改!"; alert("\u5e74\u503c\u4e0d\u80fd\u5c0f\u4e8e1900\u5e74\uff0c\u8bf7\u4fee\u6539\uff01"); event.srcElement.focus(); event.srcElement.select(); return false; } if (month < 1 || month > 12) { //"月份應爲1到12的整數,請修改!" alert("\u6708\u4efd\u5e94\u4e3a1\u523012\u7684\u6574\u6570\uff0c\u8bf7\u4fee\u6539\uff01"); event.srcElement.focus(); event.srcElement.select(); return false; } if ((month==4 || month==6 || month==9 || month==11) && day==31) { //month + "月不存在31號,請修改!" alert(month + "\u6708\u4e0d\u5b58\u572831\u53f7\uff0c\u8bf7\u4fee\u6539\uff01"); event.srcElement.focus(); event.srcElement.select(); return false; } if (month==2) { var isleap=(year % 4==0 && (year % 100 !=0 || year % 400==0)); if (day>29) { //"2月最多有29天,請修改!" alert("2\u6708\u6700\u591a\u670929\u5929\uff0c\u8bf7\u4fee\u6539\uff01"); event.srcElement.focus(); event.srcElement.select(); return false; } if ((day==29) && (!isleap)) { //"閏年2月纔有29天,請修改!" alert("\u95f0\u5e742\u6708\u624d\u670929\u5929\uff0c\u8bf7\u4fee\u6539\uff01"); event.srcElement.focus(); event.srcElement.select(); return false; } } if (day < 1 || day > 31) { //"每個月的天數應該爲1到31的整數,請修改!" alert("\u6bcf\u4e2a\u6708\u7684\u5929\u6570\u5e94\u8be5\u4e3a1\u523031\u7684\u6574\u6570\uff0c\u8bf7\u4fee\u6539\uff01"); event.srcElement.focus(); event.srcElement.select(); return false; } return true; }
jsp
<xmdc:outputText value="移交日期"></xmdc:outputText>
<xmdc:panelGroup>
<xmdc:ccbcalendar
value="#{AddExistDataTransfer.transferBFO.transferDate}"
id="transferDate"></xmdc:ccbcalendar>
<xmdc:outputText value="*" style="color:red;"></xmdc:outputText>
</xmdc:panelGroup>
<xmdc:verbatim>
<script>
document.getElementById("AEDT_account:transferDate_1").onblur = checkDate;
</script>
</xmdc:verbatim>