実現したいこととしては、あるサブテーブル数値フィールドにフォーカスが当たったときハイライトされて入力数値で既存を上書きする処理を入れたいです。
実現方法が見つからず苦戦しております。
(() => {
const eventTypes = [“app.record.create.show”, “app.record.edit.show”];
const applyFocusListener = (input) => {
input.addEventListener(“focus”, () => {
input.select();
});
};
const addListenersToExistingRows = () => {
const table = document.querySelector(“.subtable-6465414”);
if (!table) {
console.log(“サブテーブルが見つかりません。”);
return;
}
const inputs = table.querySelectorAll(“input, textarea”);
inputs.forEach((input) => applyFocusListener(input));
};
kintone.events.on(eventTypes, (event) => {
addListenersToExistingRows(); // 既存の行にリスナーを適用
const table = document.querySelector(".subtable-6465414");
const observer = new MutationObserver((mutationList) => {
for (const mutation of mutationList) {
if (mutation.type === "childList") {
const trs = Array.from(mutation.addedNodes);
trs.forEach((tr) => {
const inputCell = tr.cells[3]; // 3列目のセルを指定
if (inputCell) {
const input = inputCell.querySelector("input, textarea");
if (input) {
applyFocusListener(input);
}
}
});
}
}
});
observer.observe(table.tBodies[0], {
childList: true,
});
});
})();
自己解決しました。
「いいね!」 1