新規投稿
フォローする

ボタンを設置しそれを押したときにユーザー選択フィールドに特定のユーザーを設定できるようにしたい

背景・実現したいこと

ユーザー選択フィールドに毎回名前を入力するのが面倒なので、ユーザー選択フィールドの横にボタンを設置して、そのボタンを押せば特定のユーザーがフィールドに登録されるようにしたいと思っています。

ネットの記事などを参考にレコード追加画面などを開いた時に、ユーザー選択フィールドに特定のユーザーを登録することは出来たのですが、それを「ボタンを押したときに」という風にしようとすると一切ユーザー選択フィールドが反応しないです。

 解決法をご教授頂けると嬉しいです。

エラー情報(開発者ツールのコンソール)

 コンソールにエラーなどは出ていません。

利用したソースコード

(function() {
    "use strict";

    //レコードの追加、編集で適用する
    var events = [
        'app.record.create.show',
        'app.record.create.change.ユーザー選択',
        'app.record.edit.show',
        'app.record.edit.change.ユーザー選択'
    ];

    //イベントの取得
    kintone.events.on(events, function(event) {

        // スペースフィールドにボタンを設置
        var mySpaceFieldButton = document.createElement('button');
        mySpaceFieldButton.id = 'addMeButton';
      mySpaceFieldButton.innerText = '特定の人を設定するボタン';
        mySpaceFieldButton.onclick = function () {
// ここでユーザー選択フィールドに特定の人を設定する(ここが反応しません)
            event.record['ユーザー選択']['value'] = [
                {code: 'sample_code', name: 'sample_name'}
            ];
        }
        
        kintone.app.record.getSpaceElement('addMeButtonSpace').innerHTML = '';
        kintone.app.record.getSpaceElement('addMeButtonSpace').appendChild(mySpaceFieldButton);
        return event;
    });
})();
 
0

4件のコメント

Avatar
新屋 育男

kz 様

こんにちは。

onclick の中で結果が retrun されていないのが原因かと思います。

0
Avatar
kz

新屋育男様

コメントありがとうございます。

「結果がreturnされていない」とはどういうことでしょうか?onclickの中にreturn;を追加するということでしょうか?

0
Avatar
kz

ネットで情報を探したところこちらに解決策が書いてありました。

どうやらボタンを押したときにフィールドの値を書き換えたいときは、

  • kintone.app.record.get()
  • kintone.app.record.set()

を使用しないといけないようです。お騒がせして申し訳ございませんでした。

1
Avatar
新屋 育男

kz 様

こんにちは。

問題解決されたようで良かったです。

 

私は retrun event; でeventオブジェクトを返せば変更されるかと軽はずみに考えてたんですけど、そうではなかったみたいですね。

こちらこそお騒がせしてしまい申し訳ございませんでした。

 

kintone.app.record.set(event) でeventオブジェクトを指定する必要があったみたいですね。

大変勉強になりました。

0
サインインしてコメントを残してください。