チェックボックス選択肢に基くフィールド活性/非活性/必須化(kintone×JavaScript)

目次

※本ページ先頭に戻りたい場合は画面右下の画像に alt 属性が指定されていません。ファイル名: fdd5c5eff34d006b8526d0602cef2cd6.pngボタンを押して下さい。

概要

kintoneのチェックボックス選択肢によって、活性/非活性/必須を設定する

  • 「ExcelVBA」チェック時
    →ExcelVBA関連のフィールドを入力可能&必須項目
    ※「ExcelVBA」のチェックが外れると非活性(入力不可&値削除)
  • 「Python」チェック時
    →Python関連のフィールドを入力可能&必須項目
    ※「Python」のチェックが外れると非活性(入力不可&値削除)
  • 「JavaScript」チェック時
    →JavaScript関連のフィールドを入力可能&必須項目
    ※「JavaScript」のチェックが外れると非活性(入力不可&値削除)

プログラムを作成した理由

上記動作概要を例とすると、

担当者が「ExcelVBA」をチェックしたのに
ExcelVBAの「経験年数」「作成プログラムの概要」を入力せずに保存してしまう…:まいった:

という事態を未然に防ぎ、確実にフィールドを入力させる為。

現場のITリテラシーは著しく低い為、
「普通、チェックしたら該当箇所を埋めるのだろう」は一切通じません

入力制御を実現出来ていなかった背景

kintoneの標準機能に「必須項目」の設定は存在しているのですが、

下記のように
「ExcelVBA」がチェックされた場合は「ExcelVBA関連のフィールドのみ必須」とは出来ず、
「どんな状況であれ入力して下さい」という単純な制御しか出来ません。

※「Python」「JavaScript」をチェックしていないのに「必須です。」と警告されてしまう

「条件付き入力制御プラグイン」という有料のプラグインはあるが…

条件付き入力制御プラグイン
数個のフィールドを制御する際は、プログラムいらずで非常に便利ですが、
大量のフィールドを制御するには、下記理由から向いておりません:困ったあ:

  • 大量に設定すると、画面が縦に間延びして全体像が見えづらくなる
  • 「Ctrl」+「F」キーで検索が出来ない為、設定した箇所にジャンプ出来ない
  • 「必須」「活性」「非活性」を同時に指定出来ない
※「条件付き入力制御プラグイン」の設定画面

今回の依頼では、50個程のフィールド制御を行う必要があった為、
本プラグインでは100~200回程、手動設定しなければなりません…:ゲロゲロ:
(※50個程のフィールド×活性/非活性/必須の3パターン)

上記背景から、
プラグインでの制御はメンテナンス性皆無と判断し、JavaScriptでの制御となりました。

ソースコード

大まかに下記構成となっております。

  1. 「●●」から始まるフィールドコードを配列で取得
    例)「ExcelVBA」から始まる
  2. チェックボックスが変更された場合に、該当フィールドを制御
    例)「ExcelVBA」がチェックされている場合、「ExcelVBA」関連フィールドを活性
  3. 「保存」ボタンを押した時に、チェック内容に基づき必須項目化
    例)「ExcelVBA」がチェックされている場合、「ExcelVBA」関連フィールドを必須

 

フィールドが追加されても、
自動的に「活性/非活性/必須項目」適応可能

「●●」から始まるフィールドコードを取得としている為、
フィールド追加をしても自動的に制御が適応されるのが強みです:力こぶ:

例)「ExcelVBA」関連フィールドに「作成プログラムの詳細」フィールドを追加した場合

※フィールドコード先頭に「ExcelVBA」と記載している為、活性/非活性/必須項目の制御対象となる

感想

「フィールド追加にも自動的に適応可能」という思考設計でコード作成致しましたが、
「このケース×このケースは活性/非活性/必須で」と後出し条件をいくつも追加された為、

最終的には
配列でフィールドコードをベタ打ちで持っておく」という方針にしました:大泣き:

最初から全条件が網羅されていれば、
メンテナンスし易い、美しいコードのままでいられただろうなぁ…:天使の笑顔:

想像以上に汚いコードになってしまったのが心残りですが、
担当者が使いやすい制御をかけられている事」が最重要なので、仕方ないと納得する事にします。。。

編集履歴

2022/08/15 新規作成
2022/08/18 オススメ記事タグを追加

関連記事一覧

PAGE TOP