お世話になっております。
Javascriptのonclickイベントで「承認作業を開始」ボタンを押した際に「編集」+「フィールドコード:group1を開く」という複数の関数を実行させたいのですが、思った通りの動作が行われず悩んでおります。
//例)(function() { "use strict"; kintone.events.on('app.record.detail.show', function(event) { var myIndexButton = document.createElement('button'); myIndexButton.id = 'my_index_button'; myIndexButton.innerText = '承認作業を開始'; myIndexButton.onclick = function () { kintone.app.record.setGroupFieldOpen('group1',true); location.href += '&mode=edit'; } kintone.app.record.getHeaderMenuSpaceElement().appendChild(myIndexButton); });})();
過去トピックで「onclickでは1関数のみ実行」という記事を見ましたので、無名関数やaddEventListenerも試してはみましたが、記述方法が間違っているのか、どちらかのみの実行で表示されていたボタン自体が表示されなくなります。
方法について何かしらアドバイス等いただけますと幸いです。
以上、よろしくお願いいたします。
1)本当にonclickでは1関数しか実行できないのか調べてみました。
https://www.delftstack.com/ja/howto/javascript/multiple-javascript-functions-in-onclick-event/
のサンプルコードを実行したら2つの関数も実行できました。
2)しかし、今回の例ではlocation.hrefはURLの遷移があるようにも思えます。その場合、
kintone.app.record.setGroupFieldOpen('group1',true);
location.href +='&mode=edit';
のグループ表示をした後に、URLが遷移してしまい、グループが閉じたように見えるようです。
この時点ではグループは開かれている。しかし、続きを実行すると編集画面になるとグループは閉じている。
3)画面遷移とグループを開く操作を逆にしても画面遷移によってグループの指定は効かないようにみえる。
4)ボタンは、編集画面への遷移にして、location.hashでURLに&mode=editが含まれていたらグループを開くこと考えましたが普通にedit.showでグループを開く方がシンプルだと考えました。
(function () {
"use strict";
kintone.events.on("app.record.detail.show", function (event) {
const myIndexButton = document.createElement("button");
myIndexButton.id = "my_index_button";
myIndexButton.innerText = "承認作業を開始";
myIndexButton.onclick = function () {
location.href += "&mode=edit";
};
kintone.app.record.getHeaderMenuSpaceElement().appendChild(myIndexButton);
});
kintone.events.on("app.record.edit.show", function (event) {
kintone.app.record.setGroupFieldOpen("group1", true);
});
})();
この場合、kintone標準の編集ボタンを押すとグループが展開されてしまいます。また、ボタンにした意味もあるのか、ないのか。
harada様
アドバイス頂き、有難う御座います。
ご記載頂いたonclickでの複数関数実行URLサンプルにて確かに「編集」+「フィールドコード:group1を開く」共に動きましたが、仰って頂いた通り、URL遷移により見た目上はグループ開くが実行されていない様になりますね。
標準の編集ボタンでない、単独での編集ボタンはどうしても欲しく、編集最後に記載頂いたものが最もイメージしていた動きに近い状態でした。
こちらを参考にさせて頂きます。
誠に有難う御座いました。
system
(system)
クローズされました:
4
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。