お世話になっております。
初歩的なことだと思いますが、行き詰ってしまいこちらで質問させていただきます。
現在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になっているんですよね…
下記サイトを参考にテーブル初期値に任意の値を入力させた結果、やりたいことが達成できました。
お騒がせしてしまい申し訳ありません。
本件、クローズとさせていただきます。
レコード追加時にテーブルへ初期値を入れる!