フィールドへの値のセットについて

レコード詳細画面にある生年月日の表示を"yyyy-mm-dd"から"yyyy/mm/dd"に変換して表示させようとしました。

(function() {
“use strict”;
// ロケールを初期化
moment.locale(‘ja’);

kintone.events.on(‘app.record.detail.show’, function(event) {
var rec = event.record;
var dateFieldCode = “”;
var dateFieldValue = “”;

dateFieldCode = ‘生年月日’;
dateFieldValue = rec.生年月日.value;
if (dateFieldValue) {
// 生年月日を’YYYY/MM/DD’に変更
var dateFieldDate = moment(dateFieldValue);

①------------------------------
var element = kintone.app.record.getFieldElement(dateFieldCode);
element.innerText = dateFieldDate.format(‘YYYY/MM/DD’);
-------------------------------
②------------------------------
rec.生年月日.value = dateFieldDate.format(‘YYYY/MM/DD’);
-------------------------------
window.alert(“生年月日は、” + rec.生年月日.value + “です。”);
}
});
return event;
})();

上記①の記述では上手くセットされるのですが、②の記述では変換されないままの表示になります。
return event を記述すれば、②でも上手くいくはずと聞いたのですが、何か間違っていますのでしょうか。
すみません、よろしくお願いします。

①が反映され、②が反映されないのは正しいです。

理由としては、今回詳細画面のイベントであるためです。詳細画面ではrecord.生年月日.value = … などでkintoneがもつレコードの値を書き換えることはできない仕様です。(JS上で値を変えても画面に反映されない、という意味です)

逆に、①でできる理由としては、kintoneがもつレコードの値を書き換えてるのではなく、あくまで見た目のみを無理やり変えているものだと思ってください。

村濱様

ありがとうございます。

やはり、フィールドコード.valueに値をセットしようとしても書き換えられないのですね。

innerTextにセットすれば、表示上変えることはできるということは分かりました。

詳細画面で値をセットして、レコードも更新したいのですが、この件については、別途質問させていただきました。