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;
}