changeイベントのキャンセルができない

changeイベント発生時に、条件により入力をキャンセルさせたいと思いますが、下のテスト用のプログラムでも、キャンセルができません。

 

下のURLでは「ハンドラーが record オブジェクトのフィールドの error にエラーメッセージを代入して event オブジェクトを return した場合、 フォームの値の書き換えと編集可/不可の設定はキャンセルされ、フィールドにエラーメッセージが表示されます。」と記載されていますが、

フィールドのエラー表示はされるのですが、入力はキャンセルされない状態です。

 https://developer.cybozu.io/hc/ja/articles/202166270-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E7%B7%A8%E9%9B%86%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88

 

 

どこに間違えがあるのか、どなたか教えて頂けると助かります。よろしくお願いいたします。

 

========以下、使用プログラム==========================

(function test(){
  “use strict”;
  var field1 = “ドロップダウン”;
   var eve = [‘app.record.create.change.’+field1,
              ‘mobile.app.record.create.change.’+field1,
              ‘app.record.edit.change.’+field1,
              ‘mobile.app.record.edit.change.’+field1];
   kintone.events.on(eve,function(event) {
     var record = event.record;
      record[field1].error = “エラーテスト”;
       return event;
   });
})();

阿部 謙二さん、こんにちは

change イベントのエラー表示でキャンセルされるものはイベント自体ではなく

return 前にコード内で書き換えたものをキャンセルするものみたいですね。

コードを見る限り cahnge イベントにドロップダウンを設定されているので

文字列フィールドがあると仮定して、一例を出すとこんな感じでしょうか

(function test(){
  "use strict";
  var field1 = "ドロップダウン";
   var eve = ['app.record.create.change.'+field1,
              'mobile.app.record.create.change.'+field1,
              'app.record.edit.change.'+field1,
              'mobile.app.record.edit.change.'+field1];
   kintone.events.on(eve,function(event) {
     var record = event.record;
--------ドロップダウンが変わったときにキャンセルされる処理--------
var record['文字列フィールド']['disabled'] = true;
var record['文字列フィールド']['value'] = 'test';
--------ドロップダウンが変わったときにキャンセルされる処理--------
      record[field1].error = "エラーテスト";
       return event;
   });
})();