テキストフィールドに入力した値が日付として正しいかチェックします。
下記例では、正規表現を使って YYYY/MM/DD 形式になっているかも同時にチェックしています。

/****************************************************************
* 機 能: 入力された値が日付でYYYY/MM/DD形式になっているか調べる
* 引 数: strDate = 入力された値
* 戻り値: 正 = true 不正 = false
****************************************************************/
function ckDate(strDate) {
    if(!strDate.match(/^\d{4}\/\d{2}\/\d{2}$/)){
        return false;
    }
    var y = strDate.split("/")[0];
    var m = strDate.split("/")[1] - 1;
    var d = strDate.split("/")[2];
    var date = new Date(y,m,d);
    if(date.getFullYear() != y || date.getMonth() != m || date.getDate() != d){
        return false;
    }
    return true;
}

7~9行目:正規表現を使ってnnnn/nn/nn形式になっているかチェックしています。(n は 0~9 の数字)
月と日が1桁(YYYY/MM/DD or YYYY/M/D)でも許可する場合は
!strDate.match(/^\d{4}\/\d{1,2}\/\d{1,2}$/)

10~12行目:「/」で分解して年、月、日に分けて変数に格納しています。
Javascriptで月は 0 を起点とする為、0~11月になるので 1 を引いています。

13行目:Dateオブジェクトを使って日付を生成しています。
指定した引数が日付として無効な値の場合、エラーにならずに正しい日付に変換されます。
例えば11月31日を指定すると、11月は30日までしかないので12月1日が返ってきます。

14~16行目:日付として妥当かチェックしています。
13行目で生成した日付と比較して、年、月、日のいずれかが違っていると日付として妥当でなかったということになります。


サンプル