お世話になっております。
(やりたいこと)
現在、緊急度というドロップダウンを設置しており、項目が「要対応」、「中」、「低い」 の3つがあります。この中で「要対応」のみを一覧画面にて赤文字で表示させたいと考えております。
(現状)
文字色を赤文字にするところまではできてるのですが、項目3つ全てが赤文字になってしまっております。
(使用コード)
(()=> {
"use strict";
kintone.events.on('app.record.index.show', (event) => {
const elUrgent = kintone.app.getFieldElements('緊急度');
for(let i = 0; i < event.records.length; i++){
if (event.records[i]['緊急度']['value'][0] !== "要対応"){ //全て赤文字になってしまう
elUrgent[i].style.color = '#ff0000';
}
}
return event;
});
})();
if文の条件を追加する等コードに不足があるのでしょうか。
ご指摘して頂けますと幸いです。
ドロップダウン自体に赤文字になるようにコードを組んでいることが分かりました。
コードの修正を引き続きしておりますが、なにかご指摘がありましたら、よろしくお願い致します。
試してみるとすべての行で赤くなっていました。
if (event.records[i]['緊急度']['value'][0] !== "要対応"){
の行がおかしいと感じました。
この行にブレイクポイントを設定しました。
ほしい値をプロパティパスをコピーしてみると
event.records[i]['緊急度']['value'][0]
ではなく
event.records[0].緊急度.value
にはいっていました。
また、
!==
同じではないを意味しますので、同じを意味する
===
に変更しました。
最終的には、
(() => {
"use strict";
kintone.events.on("app.record.index.show", (event) => {
const elUrgent = kintone.app.getFieldElements("緊急度");
for (let i = 0; i < event.records.length; i++) {
if (event.records[i]["緊急度"]["value"] === "要対応") {
elUrgent[i].style.color = "#ff0000";
}
}
return event;
});
})();
event.records[i]['緊急度']['value'][0]
場合は、"要対応"の"要"だけがとれるみたいですね。0番目の文字が取得され、"要対応"と比較して一致しないことを確認され、要対応、中、低いのすべてが赤い文字で表示されていた状況でした。
harada様
お世話になっております。
間違えている箇所の解説及び修正後のコードありがとうございます。
デバック作業をしていたのですが記載し忘れていた為にお手数をおかけしてしまいすみません。
0番目の文字が取得されていたとは思ってもみなかったのでとても勉強になりました。
system
(system)
クローズされました:
7
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。