テーブル内のドロップダウンの値によって同テーブル内の数値、文字列を挿入

いつもお世話になっております。

タイトルの件について、以下のフィールドをテーブルにしており

ドロップダウン|数値|文字列(1行)

ドロップダウンの値によって、数値と文字列に値を挿入したいと考えております。

以下記事を参考に下記のようなコードで設定しましたが、値は入らず、エラー等もありませんでした。テーブルはchangeイベントが使用できないのでしょうか。

javascriptでサブテーブルの計算方法について(kintone)

テーブル内の特定フィールドの値に応じて同テーブル内の他のフィールドへ値を入れる処理

(function () {
"use strict";
var events = [
'app.record.detail.show', 'app.record.create.show', 'app.record.edit.show',
'app.record.create.change.設備テーブル', 'app.record.edit.change.設備テーブル',
'app.record.create.change.設備', 'app.record.edit.change.設備'
];
kintone.events.on(events, function(event) {
var tabRec = event.record.設備テーブル.value;
for (var i = 0; i < tabRec.length; i++) {
var fuzoku = tabRec[i].value['設備'].value;
var tanka = tabRec[i].value['単価'].value;
var tani = tabRec[i].value['単位'].value;
if (fuzoku === '設備1') {
tanka = "100";
tani = "台";
} else if (fuzoku === '設備2') {
tanka = "200";
tani = "式";
}
}
return event;
});
})();

お手数をおかけしますがご教授いただけますと幸いです。

よろしくお願いいたします。

 

エラーなど出てないのであればif文を通ってない可能性が高いかと思います。

"設備1"のフィールドコードが"設備1"など全角になってたりしませんか?

Naoさん、こんにちは。プロジェクト・アスノートの松田です。

eventオブジェクトの書き換えを行う式を入れたらフィールド更新されると思います。

確認の手段としては、デベロッパーツール等で、return前で停止させて、
eventオブジェクトが目的通りに書き換えられているか確認することや、

一旦コンソールに出力する等あります。

 

        for (var i = 0; i < tabRec.length; i++) {
            var fuzoku = tabRec[i].value['設備'].value;
            var tanka = tabRec[i].value['単価'].value;
            var tani = tabRec[i].value['単位'].value;
            if (fuzoku === '設備1') {
                tanka = "100";
                tani = "台";
            } else if (fuzoku === '設備2') {
                tanka = "200";
                tani = "式";
            }
            tabRec[i].value['単価'].value = tanka;
            tabRec[i].value['単位'].value = tani;
        }
        return event;

 

TK様、Shotaro Matsuda様

ご返信ありがとうございます。

 

Shotaro Matsuda様からご指示いただいた通り、

eventオブジェクトの書き換えを行う式を入れることで、値が挿入されました。

ありがとうございます。

今後ともよろしくお願いいたします。