チェックボックスでテーブル内のドロップダウンの制御を行いたいです。
全くの初心者でお恥ずかしいのですが、どなたかご教授頂けると幸いです
kviewerとフォームブリッジを連携しています。
フォームを開いた時点でテーブルにデータが表示されており、チェックボックスは編集不可にしてあります。
テーブル内のチェックボックスにチェックが付いている場合のみ、ドロップダウンを選択可能にしたいのですが、
どのようにしたら良いでしょうか。
こちらを参考にコードを書いてみましたが、動きませんでした。
https://developer.cybozu.io/hc/ja/community/posts/360045255552-%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E3%81%A7%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%AE%E7%B7%A8%E9%9B%86%E5%88%B6%E5%BE%A1%E3%82%92%E3%81%8A%E3%81%93%E3%81%AA%E3%81%86%E6%96%B9%E6%B3%95
(function() {
“use strict”;
fb.events.form.mounted = [function (state) {
if(event.record.チェックボックス.value.length > 0) {
event.record.テーブル.value.forEach(function(row) {
ドロップダウン.disabled = true;
});
}
return state;
}]
})();
ちかさん
お世話になっております。
チェックボックスとドロップダウンは共にサブテーブル内にあり、行ごとにフィールドの編集不可設定するということでしょうか?
フォームブリッジで、サブテーブルの行ごとにフィールドの編集不可設定することは困難です。
もしどうしてもという場合は、DOM操作を行い、各行のフィールドにpointer-events: none;を設定するなどになるかと思います。
ただし、フォームブリッジの仕様変更により動作しなくなる可能性があります。
ドロップダウンがサブテーブル外の場合や、行ごとに出し分ける必要がない場合は、editableプロパティ(state.fields[].editable)をfalseにすることで編集不可設定できます。
江田篤史さま
お世話になっております。
>チェックボックスとドロップダウンは共にサブテーブル内にあり、行ごとにフィールドの編集不可設定するということでしょうか?
おっしゃる通りです。
JavaScripも理解できておらず、DOM操作も高いハードルに感じましたので、今回は諦めます。
できない(難しい)ことが分かっただけでも助かりました。
ご回答ありがとうございました。