お世話になっております。
レコード追加時やレコード編集時にテーブルの行が追加された場合に
非活性にされた状態で行追加をしたいと考えており、どのようにしたら出来るのか教えて頂ければ幸いです。
現在は、下記のようなコードを実装していますが、
var record = event.record;
var table_array = record[‘HOGE_TABLE’].value;
for (var i = 0; i < table_array.length; i++) {
table_array[i].value.HOGE_ID.disabled = true;
}
見て頂ければ分かる通り、追加された場合の行は非活性になりません。
編集時の既に存在している行については非活性になってますが、行追加時にも非活性にできるのであればご教授頂ければ幸いです。
宜しくお願い致します。
鈴木祐介さん
cstapの瀧ヶ平です
app.record.edit.change.HOGE_TABLE イベントと
app.record.create.change.HOGE_TABLE イベントで同様の処理を行えば問題ないかと思います
cstap
瀧ヶ平様
確認させて頂きましたが、何故か非活性にならないですね。。。
HOGE_ID: Object
disabled: true
type: “NUMBER”
value: undefined
proto : Object
chromeのdevtoolで見る限りは非活性になっている(disabled : trueになっている)のですが、普通に入力が可能ですね。。。
鈴木祐介さん
自分が過去実装した際は問題なく動作したのでおそらく他の問題ではないかと思います。
同一のイベントハンドラーにeventオブジェクトをreturnしていない関数が登録されているなどがある場合は非活性にならないかと思われます。
また強引に行うのであれば、MutationObserverでテーブルの要素を監視し、子要素の追加/削除時にkintone.app.record.get()でレコードを取得、フィールドを編集不可にし、kintone.app.record.set()によってレコードを更新する方法も考えられます。
大変申し訳ありませんでした!
ご指摘の通りreturn event; を書き忘れてました(_)
おかげで思い通りの動きが実装出来ました!
ありがとうございました!