お世話になります。
javascript初心者でほとんどコードが分かりませんが、kintoneで実現したいことがございます。諸先輩方のお知恵をお借りできれば幸いです。
■実現したいこと
このアプリは自分以外の人間が入力するのですが、項目Aにて特定の値(例:kintone)が選択されているとき、 項目Bテーブルの”内容”の選択リストで特定の値(例:良いシステム)が、必ずNo1~3のいずれかで選択しないと保存できない ようにしたいです。
■考えたこと
javascriptにて項目Aに”kintone”が選択されているかどうかを判定し、そのうえで項目Bテーブルの中の内容項目に”良いシステム”が1つでもないかどうかを判定させ、なければデータを保存できないようにする、と考えました。
■ご教授いただきたいこと
①これは実現可能なことでしょうか?
②もっとも簡単に実現する方法はあるでしょうか?
③どんなコードを書けばテーブル内の項目に値が含まれているかどうかを判定できるでしょうか?
以上となります。
拙い説明で申し訳ありませんが、何卒お力添えのほどよろしくお願い申し上げます。
m-kobayashi さん
こんにちわ!
JavaScript 勉強中の身ですが、初心者なりにコードを書いてみました!
ご参考になれば嬉しいです。
(function () {
"use strict";
kintone.events.on(['app.record.create.submit','app.record.edit.submit', 'app.record.index.edit.submit'], function (event) {
var record = event.record;
var saveFlag;
for(var i = 0; i < record.Table.value.length; i++){
if(record.Table.value[i].value.dropdown_2.value === "良いシステム"){
saveFlag = true;
break;
}
}
if(!saveFlag){
event.error = "レコード保存できません。";
}
return event;
});
})();
エラーの表示方法については、以下のページを参考にしました!
https://developer.cybozu.io/hc/ja/articles/202166270#step7
すいません、記載漏れがありました。
“Table” の箇所には、テーブルフィールドのフィールドコードを指定します。
例えば、テーブルフィールドのフィールドコードが “field_b” の場合、
"record.field_b.value[i].value.dropdown_2.value " のように指定します。
度々すいません。
レコード一覧画面ではテーブルフィールドの編集はできないので、
add.record.index.edit.submit のイベントの指定は不要でしたね。。。
失礼しました。
文系男様
何度も丁寧にご説明くださりありがとうございます!!
おかげさまで実装することができました。
本当にありがとうございました!