ブログ

2021/12/16
【プリザンター】 第127回)「その他」を選択したときだけ入力できる枠の作り方

「その他」選択時の入力欄

こんにちは、CCSの田中です。

プリザンターを使っていると、分類項目で選択肢から選択させることがよくあると思います。
アンケートなどでは、その選択肢の中で「その他」を選択した場合に具体的な名称などを入力させることもありますよね?
そういった場合に、その他の内容を入力する欄は、「その他」を選択したときにしか使えないようにしたいと思ったりしませんか。間違って入力されても困りますし。

そのようなことをプリザンターで行う方法を説明します。
スクリプトを使って、「その他」を選択したら「その他の内容」を記入できるようにし、それ以外を選択した場合は「その他の内容」は入力できないようにします。

設定方法

今回使用するテーブルは、記録テーブルを作成して、分類Aと分類Bをエディタタブで追加しておいてください。
分類Aは、「職業」という名前にして、選択肢は以下を登録します。
分類Bは、「その他職業」という名前にします。

1,公務員
2,会社員
3,自営業
4,その他

ここまで出来たら、次にスクリプトを作成しましょう。
以下のようなスクリプトを作成して、出力先は「新規作成」と「編集」にのみチェックを入れてください。


if ($p.getControl('ClassA').val() === '4') {
$('#Results_ClassB').prop('disabled', false)
.css('background-color', '#ffffff');
}else{
$('#Results_ClassB').prop('disabled', true)
.css('background-color', '#cccccc');
}
$(document).on('change', '#Results_ClassA', function () {
if ($p.getControl('ClassA').val() === '4') {
$('#Results_ClassB').prop('disabled', false)
.css('background-color', '#ffffff');
}
});



1~7行目は、初期値として、職業が「その他」の時は、「その他職業」が活性で、それ以外の時は非活性になるようにしています。
非活性の時は背景色をグレーに設定しています。
8行目以降で、「職業」の部分に変更があったことをトリガに「その他職業」を活性か非活性にする判定をしています。

難しくはないと思いますので、ぜひ一度試してみてください。
また、状況(Status)などで、完了(900)になったら、そのレコードを読み取り専用にして編集させない、なんてこともやりたい場合があると思います。その場合はサーバスクリプトに以下のスクリプトを書くことで実現できます。


try {
context.Log('完了したものは読み取り専用');
if (model.Status === 900) {
model.ReadOnly = true;
}
} catch (e) {
context.Log(e.stack);
}



条件は「画面表示の前」を選択してください。

まとめ

さて、いかがでしたか?

プリザンターは、ローコードで各種機能を実現できる非常に良いツールです。
本格的なプログラミングを知らなくても、上記のようなサンプルがあれば、プログラミングに詳しくない人でもカスタマイズが行えると思います。ぜひ一度お試しください。

導入の支援、スクリプト開発などでお困りの場合は、当社で支援もいたします。プリザンター逆引き辞典PDF版やスタイル・スクリプトサンプル集PDF版の販売もしております!

☆☆ブログ内容への質問や追加説明をご希望の方は
【問い合わせフォーム】 こちら からお気軽にお問い合わせください☆☆

PAGE TOP