編集画面でテーブルの初期値をブランクにする方法

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

初歩的なことだと思いますが、行き詰ってしまいこちらで質問させていただきます。

 

現在JavaScriptを使用し、編集画面をカスタマイズしています。

フィールドタイプ「テーブル」を使用しており、テーブル内に「日付A」「文字列B」「文字列C」を設定しています。

行いたいことですが、編集画面を開いた際、テーブルのレコードが0件の時に「日付A」と「文字列C」をブランクの状態にしたいです。

 

下記のコードを書きましたが、エラーとなってしまい、解決できませんでした。

var table = event.record.テーブル.value;

if(table.length == 0){
table[0].value['日付A'].disabled = true;
table[0].value['文字列C'].disabled = true;

return event;
}

 

下記がエラー内容です。

Uncaught TypeError: Cannot read properties of undefined (reading ‘value’)

 

ご教示ください。よろしくお願いいたします。

if文でtableの長さがゼロを判定しているのに、table[0]にアクセスしようとしてるからだとおもいますね。
ないものにアクセスしようとしてエラーだしてるかんじです。

あと、初期値をブランクにしたい場合、各フィールドの初期値を空にすればいいと思いますが、どうでしょうか?
(もしも編集のときだけそうしたい、ということであればこれでは叶いませんが…)

 

村濱一樹

ご返信ありがとうございます。

あと、初期値をブランクにしたい場合、各フィールドの初期値を空にすればいいと思いますが、どうでしょうか?
(もしも編集のときだけそうしたい、ということであればこれでは叶いませんが…)

編集画面以外にも、追加画面、再利用画面でも同様にブランクにしたいのです。

追加画面と再利用画面では下記コードでやりたいことは達成できたのですが、編集画面だけ行き詰ってしまいました…

for (var i = 0; i < table.length; i++) {
table[i].value['日付A'].disabled = true;
table[i].value['文字列C'].disabled = true;
}

 

追加画面・再利用画面を表示した際、テーブルのデータが0件の場合、テーブルlengthは1ですが、編集画面だとlengthが0になっているんですよね…

下記サイトを参考にテーブル初期値に任意の値を入力させた結果、やりたいことが達成できました。

お騒がせしてしまい申し訳ありません。

本件、クローズとさせていただきます。

 

レコード追加時にテーブルへ初期値を入れる!