背景・実現したいこと
商品Tableというサブテーブルの「発注ステータス」をフォームブリッジで更新したいのですが、発注ステータスが「商品到着」の場合のみ更新したいです。
他に「発注済み」や「納品完了」といったステータスがあるのですが、その場合は編集不可にしたいです。実現可能でしょうか。
利用したソースコード
以前のフォームブリッジ編集不可の書き込みを参考に作成しました。
エラーは出ないのですが、編集不可にはなりませんでした。
(function() {
"use strict";
fb.events.form.mounted = [function(state){
var inputElement;
for(var i=0;i < state.record.商品Table.value.length; i++){
if(state.record.商品Table.value[i].value.発注ステータス.value !== "商品到着"){
inputElement = document.querySelector('[data-vv-name="商品Table-' + i + '0-発注ステータス"]');
inputElement.setAttribute("disabled", "disabled");
}else{
}
}
return state;
}];
})();
大川 泰英さん
こんにちは。
「実現したいこと」をもう少し掘り下げて伺いたいです。
サブテーブルは画像のようなイメージで合ってますか?
大川さんの実現されたいことは、以下いずれかに該当しますか?
この画像ですと、2行目の「発注ステータス」が「商品到着」のため、これを別の選択肢に変更でき、
1行目と3行目は変更ができないようにするということでしょうか。
それとも、この状態でフォーム送信したときに
kintoneアプリ側では、2行目の内容だけが反映されて、1行目と3行目は反映しない(更新しない)ということでしょうか。
もしくは「商品到着」の行があるため、この商品テーブル全体は編集可能とする。
もし「商品到着」の行がなければ、この商品テーブル全体を編集不可とするということでしょうか。
ご返信ありがとうございます。
【2行目の「発注ステータス」が「商品到着」のため、これを別の選択肢に変更でき、
1行目と3行目は変更ができないようにする】
これが正に実現したい事です。
kintoneアプリは全て更新で大丈夫です。(変更したステータスで更新)
ご確認ありがとうございます。
フォームブリッジのドロップダウンは、一般的なHTMLのドロップダウンと異なるもので
disabledにしても一時的に非活性にはなりますが、クリックすると再度活性化されますね。
他に良い方法があるかもしれませんが、思いつかなかったのでドロップダウンを上書きする荒業になりました。
※[data-vv-name=“商品Table-’ + i + '0-発注ステータス”]の間の0は不要ですので消しています。
// 検証して駄目だった例
inputElement = document.querySelector('[data-vv-name="商品Table-' + i + '-発注ステータス"] input');
inputElement.setAttribute("disabled", "disabled");
// 成功した例(※非推奨)
fb.events.form.mounted = [function(state) {
var inputElement;
for (var i = 0; i < state.record.商品Table.value.length; i++) {
if (state.record.商品Table.value[i].value.発注ステータス.value !== "" && state.record.商品Table.value[i].value.発注ステータス.value !== "商品到着") {
inputElement = document.querySelector('[data-vv-name="商品Table-' + i + '-発注ステータス"]');
if (inputElement) {
inputElement.outerHTML = state.record.商品Table.value[i].value.発注ステータス.value;
}
} else {
}
}
return state;
}];