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

 

IT

Posted by arkgame