【フォームブリッジ】添付ファイルがある場合は、「添付ファイル有無」フィールドに ”有” を入れるスクリプトについて

初歩的な質問ですみません
添付ファイル(フィールド名:添付ファイル) にファイルが存在した場合、
添付有無フィールド(フィールド名:添付有無) に 有 を入力し、
添付ファイルがない場合は 無 を入力するスクリプトが知りたいです。

以下を想定しましたが、添付ファイルの有無に限らず、 有 となります。
アドバイスいただけますと幸いです。

 

(function() {
  “use strict”;
  fb.events.form.created = [function (state) {

  if(record[‘添付ファイル’][‘value’].length === “0”){
      state.record.添付有無.value = “無”;
      } else {
      state.record.添付有無.value = “有”;
    };

console.log(record[‘添付ファイル’][‘value’].length);

  }];

})()

Sophia 様

こんにちは。

フォームブリッジはさわったことがないので、間違えてたら申し訳ないです。

おそらく、引数をリターンしていないことが原因かと思います。

return state;

新屋

ありがとうございます。
以下のように試しましたが、やはり添付ファイルがなくても
添付ファイル有無のフィールドに 「有」が入力されます。
もう少し自分でも調べてみますが、アドバイスいただけますと幸いです。

(function() {
  “use strict”;
  fb.events.form.created = [function (state) {
    state.record.緊急フロー要請.value = “”;    //値を空白にする
    state.record.工事区分.value = “”; //値を空白にする
    state.record.希望月.value = “”; //値を空白にする
    state.record.竣工希望年.value = “”; //値を空白にする

  if(record[‘添付ファイル’][‘value’].length === “0”){
      state.record.添付有無.value = “無”;
      } else {
      state.record.添付有無.value = “有”;

      return state;
    };
  }];
})()

Sophia 様

あとは、見逃してましたけど、

if(record['添付ファイル']['value'].length === "0"){

この部分ですが state が抜けてるんじゃないでしょうか?

if(state.record['添付ファイル']['value'].length === "0"){

すいません、見逃してしまって。

Sophia 様

何度もすいません。

length で見ているので length === “0” も気になりますね。

length の場合は、数値だから length === 0 じゃないでしょうか?

 

通常は if でエラーでそうですけど、でないということは

record[‘添付ファイル’][‘value’].length で値が取得できているということですよね?

と仮定するならば、気になる部分は === (厳密等価)この部分かと思います。

厳密等価 (===) - JavaScript | MDN (mozilla.org)

どれが正しいかはわからないですけど、とりあえず試してみて下さい。

新屋様

色々とありがとうございます。
lengthの値を数値として扱うように修正しました。
また、該当の項目(フィールド)に変更があった場合に発火するといった条件に
したところ、実現したかった動きになりました。
→fb.events.fields.添付ファイル.changed

プログラムの経験が浅く、日々の業務ではほとんど利用しないので
jsやプログラムの規則など理解がしていない中で手探りで作っているので
迷走しておりました。今後は理解した上でプログラミングできるようになりたいです。。。

本当にありがとうございます。
重ねて御礼申し上げます。

 

   //添付ファイルがある場合は、添付ファイル有無に「有」、ない場合は「無」をセット
 //これによって、回答後処理のメール内容を分ける
  fb.events.fields.添付ファイル.changed = [function(state) {
    if(record['添付ファイル']['value'].length == 0){
     record.添付有無.value = "無";
    } else {
     record.添付有無.value = "有";
    }
  }];

 

「いいね!」 1

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