Насколько я знаю, dateTextO.dateFormat: "dd/mm/yy" == false
ничего не значит. Вы можете использовать регулярное выражение для проверки, например:
var re = /^\d{1,2}\/\d{1,2}\/\d{2}$/;
if(dateTextO.value !== '' && !dateTextO.value.match(re)) {
errDateMsgO.innerHTML = "Can't Recognise the Date";
} else {
errDateMsgO.innerHTML = "";
}
Редактировать: быстрый jsfiddle: http://jsfiddle.net/Vuhkw/
Однако на самом деле это не проверяет реальные даты, а только формат. Я бы посоветовал на самом деле проверить на стороне сервера реальные даты, поскольку JS всегда можно легко подделать.