フィールド要素を取得
概要
getFieldElement 関数は、指定したフィールドIDに対応するフィールド要素(DOM要素)を取得します。
これにより、フィールドの表示内容やDOM要素を操作することが可能になります。
この関数はDOM要素を返すもので、レコードの値を更新するAPIではありません。値を変更する場合は レコードに値をセット を使用してください。
構文
atPocket.app.record.getFieldElement(fieldId, rowIndex);
引数
| 引数名 | 型 | 説明 |
|---|---|---|
| fieldId | string | 取得したいフィールドのID。明細(SubTable)の場合は列のUID |
| rowIndex | number | 明細の行インデックス(0始まり・任意)。指定すると明細のセル要素を返します |
戻り値
| 型 | 説明 |
|---|---|
| HTMLElement | null | 指定したフィールドの値を含む要素。フィールドが画面に存在しない場合や、明細で指定した行が存在しない場合は null |
使用可能画面
- レコード詳細画面
- レコード作成画面
- レコード編集画面
使用例
const element = atPocket.app.record.getFieldElement('field-1');
if (element) {
element.style.color = 'red';
}
// 明細の1行目のセル要素を取得する
const cell = atPocket.app.record.getFieldElement('field-6_1', 0);
明細(SubTable)のセル要素を扱う場合の注意
行の追加・コピー・削除・並び替えを行うと明細のDOMが作り直されるため、取得して保持した要素の参照は無効になります。addEventListener で付けたリスナーや appendChild で挿入した独自要素も失われます。行操作の change イベントで取得し直してください(明細(SubTable)の操作)。
ヒント
値を変えずに見た目だけを変更する場合は、DOM構造に依存しない フィールドのスタイルを設定 の利用をおすすめします。