新規投稿
フォローする

テーブル内に条件付き必須の設定について

テーブル内のフィールドやドロップダウンに条件付き必須を設定することは可能でしょうか?

複数選択(フィールドコード:セレクト)で[AAA]を選択した場合、
テーブル内のフィールド(フィールドコード:テキスト)とドロップダウン(フィールドコード:ドロップ)を必須にしたいです。

ご教示のほどよろしくお願いいたします。

0

4件のコメント

Avatar
sio

uryu 様

こんにちは。

具体的な状況によって処理も変わるとは思いますが、
例えばレコードを保存するタイミングで、複数選択は[AAA]が選択されているという条件で、
テーブル内のテキストフィールド/ドロップダウンに未入力の状態のものがあればエラーを出す、
という流れでしたら、下記のような処理で対応できると思います。ご参考になれば幸いです。

(function() {
'use strict';
kintone.events.on(['app.record.create.submit', 'app.record.edit.submit'], function(event) {
var check = event.record['セレクト'].value;
var table = event.record.テーブル.value;
if (check.indexOf('AAA') !== -1) {
for (var i = 0; i < table.length; i++) {
if (!(table[i].value['テキスト'].value) || table[i].value['ドロップ'].value === undefined) {
event.error = 'テーブルに未入力必須項目があります。';
}
}
}
return event;
});
})();
0
Avatar
uryu

sio様

コメントいただきありがとうございます。

参考にやってみたところ対応できました。
ありがとうございます。

1点質問なのですが、
event.error = 'テーブルに未入力必須項目があります。'; の箇所を
record.フィールド名.error = "必須項目です。"; のように
該当フィールドの下にアラートを出すことは可能でしょうか?

ご教示のほどよろしくお願いいたします。

1
Avatar
sio

uryu 様

for文の中身を下記のように書き換えれば、
該当フィールドの下にエラーが出るようになると思いますが、いかがでしょうかm(_ _)m

      if (!(table[i].value['テキスト'].value)) {
table[i].value['テキスト'].error = '必須項目です';
}
if (table[i].value['ドロップ'].value === undefined) {
table[i].value['ドロップ'].error = '必須項目です';
}
0
Avatar
uryu

sio様

コメントいただきありがとうございます。
設定できました。
ご丁寧に教えて頂き、感謝いたします。

もしよろしければ、もう1つ書き込ませていただいておりますので、
ご確認いただけますと幸いです。
https://developer.cybozu.io/hc/ja/community/posts/900002009646-%E6%B7%BB%E4%BB%98%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E6%9C%89%E7%84%A1%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

0
サインインしてコメントを残してください。