ラジオボタン切り替え時にvalueを空にしたい

初めて投稿させていただきます。

https://developer.cybozu.io/hc/ja/articles/202377614-%E5%9B%9E%E7%AD%94%E3%81%AE%E6%9D%A1%E4%BB%B6%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E5%88%A5%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%AE%E8%A1%A8%E7%A4%BA-%E9%9D%9E%E8%A1%A8%E7%A4%BA%E3%82%92%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%82%8B」

現在上記を参考に、ラジオボタン3つの選択肢の中から選択により項目の表示と非表示を切り替えるカスタマイズを行いました。

他の選択に移行した際、入力されている値を空にしたいと思い追加してみましたが、動作しません。

どうすればよいかご教示頂けますでしょうか。

/*
* 回答の条件によって元請け情報の入力項目の表示/非表示を切り替える
*/
(function() {
“use strict”;

//レコードの追加、編集、詳細画面で適用する  
var events = ['app.record.detail.show',//レコード詳細で画面を表示するとき  
              'app.record.create.show',//レコード追加画面または再利用画面が表示された時  
              'app.record.create.change.元請け情報選択',//元請け情報選択の変更時イベント  
              'app.record.edit.show',//レコード編集画面が表示されたとき  
              'app.record.edit.change.元請け情報選択'];//レコード編集画面で、指定フィールドの値が変更された時、フォームの値を書き換えた時  

kintone.events.on(events, function(event) {  

    var record = event.record;  

    //元請け情報のチェック項目に応じてフィールドの表示、非表示を切り替える  
    if (record['元請け情報選択']['value'] === '元請け無') {//元請けがなかった場合は元請け入力フィールドは全て非表示  
        kintone.app.record.setFieldShown('会社名フリガナで検索', false);  
        kintone.app.record.setFieldShown('会社名', false);  
        kintone.app.record.setFieldShown('会社電話番号', false);  
        kintone.app.record.setFieldShown('担当者名', false);  
        kintone.app.record.setFieldShown('担当電話番号', false);  
        kintone.app.record.setFieldShown('完了報告方法', false);  
        kintone.app.record.setFieldShown('締日', false);  
        kintone.app.record.setFieldShown('支払日', false);  
        kintone.app.record.setFieldShown('特記事項', false);//ここまでが元請け有(登録済み)の内容  
        kintone.app.record.setFieldShown('未会社名', false);  
        kintone.app.record.setFieldShown('未会社電話番号', false);  
        kintone.app.record.setFieldShown('未担当者名', false);  
        kintone.app.record.setFieldShown('未担当電話番号', false);  
        kintone.app.record.setFieldShown('未完了報告方法', false);  
        kintone.app.record.setFieldShown('未完了報告備考', false);  
        kintone.app.record.setFieldShown('未取引回数', false);  
        kintone.app.record.setFieldShown('未締日', false);  
        kintone.app.record.setFieldShown('未支払日', false);  
        kintone.app.record.setFieldShown('未特記事項', false);//ここまでが元請け有(未登録)の内容record['会社名フリガナで検索']['value'] = "";  
    }else if (record['元請け情報選択']['value'] === '元請け有(得意先管理登録済)') {//「元請け有(登録済)」の場合は登録済みグループを表示する  
            kintone.app.record.setFieldShown('会社名フリガナで検索', true);  
            kintone.app.record.setFieldShown('会社名', true);  
            kintone.app.record.setFieldShown('会社電話番号', true);  
            kintone.app.record.setFieldShown('担当者名', true);  
            kintone.app.record.setFieldShown('担当電話番号', true);  
            kintone.app.record.setFieldShown('完了報告方法', true);  
            kintone.app.record.setFieldShown('締日', true);  
            kintone.app.record.setFieldShown('支払日', true);  
            kintone.app.record.setFieldShown('特記事項', true);//元請け有(登録済)の場合の表示項目ここまで  
            kintone.app.record.setFieldShown('未会社名', false);  
            kintone.app.record.setFieldShown('未会社電話番号', false);  
            kintone.app.record.setFieldShown('未担当者名', false);  
            kintone.app.record.setFieldShown('未担当電話番号', false);  
            kintone.app.record.setFieldShown('未完了報告方法', false);  
            kintone.app.record.setFieldShown('未完了報告備考', false);  
            kintone.app.record.setFieldShown('未取引回数', false);  
            kintone.app.record.setFieldShown('未締日', false);  
            kintone.app.record.setFieldShown('未支払日', false);  
            kintone.app.record.setFieldShown('未特記事項', false);//元請け有(未登録)の場合の表示項目ここまで  
            record['会社名フリガナで検索']['value'] = "";  
            record['会社名']['value'] = "";  
            record['会社電話番号']['value'] = "";  
            record['担当者名']['value'] = "";  
            record['担当電話番号']['value'] = "";  
            record['完了報告方法']['value'] = "";  
            record['締日']['value'] = "";  
            record['支払日']['value'] = "";  
            record['特記事項']['value'] = "";  
        }else {//「元請け有(未登録)」の場合は未登録グループを表示する  
           kintone.app.record.setFieldShown('未会社名', true);  
           kintone.app.record.setFieldShown('未会社電話番号', true);  
           kintone.app.record.setFieldShown('未担当者名', true);  
           kintone.app.record.setFieldShown('未担当電話番号', true);  
           kintone.app.record.setFieldShown('未完了報告方法', true);  
           kintone.app.record.setFieldShown('未完了報告備考', true);  
           kintone.app.record.setFieldShown('未取引回数', true);  
           kintone.app.record.setFieldShown('未締日', true);  
           kintone.app.record.setFieldShown('未支払日', true);  
           kintone.app.record.setFieldShown('未特記事項', true);//元請け有(未登録)の場合の表示項目ここまで  
           kintone.app.record.setFieldShown('会社名フリガナで検索', false);  
           kintone.app.record.setFieldShown('会社名', false);  
           kintone.app.record.setFieldShown('会社電話番号', false);  
           kintone.app.record.setFieldShown('担当者名', false);  
           kintone.app.record.setFieldShown('担当電話番号', false);  
           kintone.app.record.setFieldShown('完了報告方法', false);  
           kintone.app.record.setFieldShown('締日', false);  
           kintone.app.record.setFieldShown('支払日', false);  
           kintone.app.record.setFieldShown('特記事項', false);//元請け有(登録済)の表示項目  
           record['未会社名']['value'] = "";  
           record['未会社電話番号']['value'] = "";  
           record['未担当者名']['value'] = "";  
           record['未担当電話番号']['value'] = "";  
           record['未完了報告方法']['value'] = "";  
           record['未完了報告備考']['value'] = "";  
           record['未取引回数']['value'] = "";  
           record['未締日']['value'] = "";  
           record['未支払日']['value'] = "";  
           record['未特記事項']['value'] = "";  
        }  
});  

})();

どうかよろしくお願いいたします。

 

『ハンドラーが record オブジェクトのフィールドの値を書き換えて event オブジェクトを return した場合、その値でフィールドの値を更新します。』https://developer.cybozu.io/hc/ja/articles/202166270#step4 

event.record の値を書き換えた後に return event; と書いて event オブジェクトを return してみてください。値が変更されると思います。

出来ました!!

ありがとうございます!!!

補足です。

レコード表示イベントの場合は、return event なしでもフィールドの非表示が作動します。→参考

今回の場合は、レコード表示イベント以外に、編集/追加画面の表示系のイベントを使われているので、
変更を反映させるためには、return event が必要になる。

ということです。参考まで。

Shotaro Matsuda様

お返事が大変遅くなり申し訳ありません!

表示のみの場合はreturn event無しでも動作するのですね。

参考にさせていただきます!

ありがとうございました。