回答内容によって必須項目を変化さえ、未回答時はエラー表示。エラーをつぶして再保存したいができない・・・

はじめて投稿します。超初心者です。

回答内容によって必須項目を変化さえ、未回答時はエラー表示させたい

→ここまでは過去のサンプルコードを参考にできました。

ただ、エラーをつぶして(未入力欄をきちんと入力したのに)、

再度同じエラーが出続けて(●●が未入力です)再保存ができない状態です・・・。

使ってるコードはこちらです。

****************

 

(function() {
    “use strict”;
    var groupA = [ //グループAに属するフィールドのフィールドコード
      ‘パス元情報’,
       ];
    kintone.events.on([
      ‘app.record.create.submit’,
      ‘app.record.edit.submit’
    ], function(event){
      if(event.record.顧客ステータス.value == ‘新規(パス)別途パス情報記載’){
        groupA.forEach(function(fieldCode){
          event.record[fieldCode].error = event.record[fieldCode].value ? ‘’ : ‘必須項目です。’;
          event.error = ‘パス元情報が未入力です’;
        });
      }else if(event.record.顧客ステータス.value == ‘抜き(パス)別途パス情報記載’){
        groupA.forEach(function(fieldCode){
          event.record[fieldCode].error = event.record[fieldCode].value ? ‘’ : ‘必須項目です。’;
          event.error = ‘パス元情報が未入力です’;
        });
      }
      return event;
          });
          var groupB = [ //グループBに属するフィールドのフィールドコード
          ‘仕入れ申請’,
           ];
        kintone.events.on([
          ‘app.record.create.submit’,
          ‘app.record.edit.submit’,
        ], function(event){
          if(event.record.仕入れ情報.value == ‘仕入れあり(別途仕入れ情報記載)’){
            groupB.forEach(function(fieldCode){
              event.record[fieldCode].error = event.record[fieldCode].value ? ‘’ : ‘必須項目です。’;        
              event.error = ‘仕入れ情報が未入力です’;
            });
          }
          return event;
        });
        var groupC = [ //グループCに属するフィールドのフィールドコード
        ‘差し替え内容詳細’,
         ];
      kintone.events.on([
        ‘app.record.create.submit’,
        ‘app.record.edit.submit’,
      ], function(event){
        if(event.record.提出ステータス.value == ‘差し替え(その他→詳細記載)’){
          groupC.forEach(function(fieldCode){
            event.record[fieldCode].error = event.record[fieldCode].value ? ‘’ : ‘必須項目です。’;        
            event.error = ‘差し替え内容詳細が未入力です’;
          });
        }
        return event;
      });
  })();

 

検証できるわけではないので、パット見の感想ですが…

下記の箇所ですが、「仕入れ情報」が「仕入れあり(別途仕入れ情報記載)」のとき、必ず、event.errorに「未入力です」と入る様になってるのが問題にみえますね。

「仕入れあり かつ 必要なフィールドがすべて入力されている」場合は、event.errorにエラー情報をいれないような条件分岐が必要です。

          if(event.record.仕入れ情報.value == ‘仕入れあり(別途仕入れ情報記載)’){
            groupB.forEach(function(fieldCode){
              event.record[fieldCode].error = event.record[fieldCode].value ? ‘’ : ‘必須項目です。’;        
              event.error = ‘仕入れ情報が未入力です’;
            });
          }

コメントありがとうございます!

条件分岐ですね・・・!試してみます!