入力した日付を元にアラートを表示

見た限り、以下5点が気になりました。

 

①イベントを複数登録する場合、配列の形である必要があります。

  kintone.events.on(
    'app.record.create.change.支払日',
    'app.record.edit.change.支払日',
  function(event) {

kintone.events.on([
    'app.record.create.change.支払日',
  'app.record.edit.change.支払日'
], function(event) {

 

②サブテーブル上のフィールドを参照する場合はevent.changes.rowです。

    var changeRowDate = changes.row.value['支払日'].value;

      var changeRowDate = event.changes.row.value['支払日'].value;

 

③dateに代入しようとしているNowDateは宣言されていないようです。どこかで宣言されていますか?違う場合、非推奨ですがmoment.jsでは

    var date = NowDate;

      var date = moment().format('YYYY-MM-DD');

このようになります。

 

④alertは選択肢が「OK」しかないお知らせになるので、今回の場合はconfirm(OKとキャンセルの2択)になるかと思います。

  if(!(window.alert("支払日が本日ではありません。このまま保存しますか?") ) ){

    if(!confirm("支払日が本日ではありません。このまま保存しますか?")) {

 

⑤再度入力させるのであれば、対象のフィールドを空白にする必要があると思います(event.errorでフィールドの書き換えをキャンセルさせることができますが、今回の場合は「既に日付フィールドが変更された後のイベント」のため、event.errorでは空白にできません)。またevent.errorを入れると空白にする書き換えがキャンセルされるので、alert等で良いかと思います。

                event.error = "キャンセルしました。"; 

        event.changes.row.value['支払日'].value = '';
alert('キャンセルしました');