ServiceNow onChange関数で土日と過去日付の選択チェックのサンプル
概要
1.ユーザーが日付を選択
2.onChange で呼ばれる
3.過去日付 かどうかチェック (gdt.before(today))
4.次に getDay() で土日判定(0=日曜, 6=土曜)
注意点
フィールドの内部値 newValue が YYYY-MM-DD 形式で来ることが多いです。
(環境によっては YYYY/MM/DD の場合あり → その場合は GlideDateTime(newValue) が
受け付けない可能性もあるので注意)
サンプルコード
function onChange(control, oldValue, newValue, isLoading) { if (isLoading || !newValue) return; // 既存エラーをクリア g_form.hideErrorBox('start_ymd'); // 入力値をDateに変換 var start_ymd = new Date(newValue); var today = new Date(); // 時刻を切り捨てて日付だけで比較 today.setHours(0, 0, 0, 0); start_ymd.setHours(0, 0, 0, 0); // 1. 過去日付チェック if (start_ymd < today) { g_form.showErrorBox('start_ymd', '開始日に過去日付は指定できません'); g_form.clearValue('start_ymd'); return; }