フィールドをブランク状態にしたら、別フィールドもブランク状態にしたいです

「番号10桁」フィールドに10桁の数字を入れると、「A_番号10桁」フィールドに「A」を加えた「番号10桁」が自動入力されるようにしました。

これに「番号10桁」フィールド欄を手動で削除(ブランク状態)のときに、「A_番号10桁」の入力も一緒に削除(入力文字をクリアして、ブランク状態にしたい)のですが、上手くできません…

ご教示願えませんでしょうか。宜しくお願いします。

 

(function () {
    "use strict"; 
    kintone.events.on(['app.record.create.change.番号10桁','app.record.edit.change.番号10桁'], function (event) {
        const record = event.record;
        if (record.番号10桁.value.length >= 1) {
            record.A_番号10桁.value = "A" + record.番号10桁.value;
        }
        if (record.番号10桁.value.length = 0) {
            record.A_番号10桁.value = [];
        }
    return event;
    });
  })();

 

番号10桁フィールドは文字列フィールドまたは数値フィールドでしょうか?その場合、空白にした際の値(record.番号10桁.value)はundefined(未定義値)となるため、length(record.番号10桁.valueより下の階層)を参照できずエラーになります。

valueの有無を判定文に使用すれば問題ないかと思います(値が配列となる複数選択やチェックボックスの場合は、投稿されたコードで問題ありません)。

      if (record.番号10桁.value) {
            record.A_番号10桁.value = "A" + record.番号10桁.value;
        }
      if (!record.番号10桁.value) {
          record.A_番号10桁.value = ''; // ←文字列フィールドを空白にする場合、空配列([])ではなく空文字('')
        }

もしくは条件を満たさない場合に空白にする以下の方法でも同じように動作します。

      if (record.番号10桁.value) {
            record.A_番号10桁.value = "A" + record.番号10桁.value;
      } else {
          record.A_番号10桁.value = '';
        }
1 Like

毎度お世話になっております。

また、早速のご回答ありがとうございます!

今回のフィールドはすべて「文字列(1行)」を使用しました。

頂いたコードで修正しましたところ…完璧です! 2つともできました!!

ありがとうございました!!!

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。