お世話になっております。
フォームブリッジの画面表示イベントにてjavascriptを使ってある条件の場合のみフィールドを非活性したいのですが、方法がわかりません。
イベント発火時のstateのどの部分に設定をすればフィールドを非活性にできるのでしょうか?
それとも直接DOMを操作するなどするしかないのでしょうか?
どなたか知っている方がいらっしゃいましたら、ご教授くださいませ。
お世話になっております。
フォームブリッジの画面表示イベントにてjavascriptを使ってある条件の場合のみフィールドを非活性したいのですが、方法がわかりません。
イベント発火時のstateのどの部分に設定をすればフィールドを非活性にできるのでしょうか?
それとも直接DOMを操作するなどするしかないのでしょうか?
どなたか知っている方がいらっしゃいましたら、ご教授くださいませ。
state.fields にフィールドが配列で置かれていますので、その中から非活性化したいフィールドに対して hide を true にすることで非表示にできます。
state.fields[3] を非活性化したい場合は、 state.fields[3].hide = true とすると非表示になります。
なお、このカスタマイズではフィールドを非表示にするだけで、設定されている値やバリデーションなどは生きています。
値をクリアしたい場合は、対象フィールドの record の value も変更する必要があります。
開発者ツールのコンソールに state を出力してみて、データ構造を確認されると、開発が進むかと思います。
以上、参考になりますでしょうか?
落合様
ご回答いただき有難うございます。
ですが私のやりたいこととしましては、非表示ではなくフィールドの非活性(入力不可など)です。
fieldsのプロパティの中には「disable」のような項目が見当たらないのですが、
state内のプロパティを操作して非活性にさせることは可能でしょうか?
disable というプロパティはありません。
入力不可であれば、editable を false にするとできます。
以上、参考になりますでしょうか?
落合様
早い返信をいただき有難うございます。
editable を false にすることで、無事想定通りに制御を行うことができました。
非常に助かりました。