数値と日付とラジオボタンの制御について

初心者です。不明点があり質問させてください。

下記画像の売上(数値フォーム)と入金予定日(日付フォーム)を入力した時のみ、

ステータスの完了(ラジオボタン)を選択することは可能でしょうか?

現状は、ただのラジオボタンの為、売上や入金予定日が未入力でも完了にできてしまいます。

どのようにJavaScriptを書いたらいいかわからない為、教えていただけますでしょうか。

宜しくお願いいたします。

 

t.sato さん

こんにちは。

JavaScript でカスタマイズを行う場合、
レコードの追加画面と編集画面それぞれのイベントで、「売上」フィールドと「入金予定日」フィールドに値が入っていない時は「ステータス」フィールドを編集不可にするコードを書けばいいと思います。

どのように JavaScript を書いたらわからない、ということですが、全く書いたことがないのでしょうか?
もしそのようであれば、cybozu developer network にはチュートリアルもあるので、合わせて読んでみると
理解がしやすいかもしれません。

今回の質問内容に戻りますが、利用するイベントは以下のものがいいのではないかと思います。

ざっくり書くと、以下のようなかたちになります。

(function() {
'use strict';
kintone.events.on(['app.record.create.<フィールドコード>', 'app.record.edit.<フィールドコード>'], function(event) {
// ここに処理したい内容を書く
});
})();

上記の「// ここに処理したい内容を書く」の部分に
if 文で「売上」フィールドと「入金予定日」フィールドに値が入っているか入っていないかの条件分岐を記述し、
各フィールドに値が入っていない場合にラジオボタンのフィールドを編集不可にするようにすればいいのではないでしょうか。

少しでも参考になればと思います。

mofuku 様

ご返信ありがとうございます。
教えていただきました内容を元に進めてみたいと思います。

t.sato様

初めまして。

既に解決されていたら申し訳ないですが、ラジオボタンの「完了」のみを入力不可にするのは難しいと思います。

ですので、保存前イベントで「売上」と「入金予定日」の入力チェックを行い、どちらも値が入っていたら保存するという処理を行うのが良いかと思いました。

入力がなかった場合、エラーメッセージを表示します。

以下簡単に書いたコードになります。動作確認は行っていません。

参考になれば幸いです。

(function ()

{
  'use strict';

  var events = [
    'app.record.create.submit',
    'app.record.edit.submit',
    'app.record.index.edit.submit'
  ];
  kintone.events.on(events, function (event)
  {
    var record = event.record;
    var Status = record['ステータス']['value'];
    if (Status === '完了') {
      if (!record['売上']['value'] || !record['入金予定日']['value']) {
        event.error = '必須項目が入力されていません';
        record['売上']['error'] = '必須';
        record['入金予定日']['error'] = '必須';
      }
    }
    return event;
  });
})();

mionix様

初めまして、返信ありがとうございます。
色々と試行錯誤していたのですが、うまくいかずやり方を変えようか迷っていたところです。
mionix様が仰るように、値が入っていたら保存するという処理もありですね!
いただいたコードを元に対応してみたいと思います。ありがとうございました。