2
1
0

日時ピッカーに対して値の入力時にバリデーションを実施したいと考え、

script runner の behaviours をでコードを書きました。

 

しかし、日時を手入力した際にはバリデーションが働くのですが、

日時ピッカーフィールドの右側のカレンダー画面から入力した場合、バリデーションが機能しません。

私の設定やコードの書き方が悪い可能性がありますが、

このようなことが起こる原因と対処法はどのようなことが考えられるでしょうか。

 

補足ですが、上記のバリデーションは具体的には、

「日時ピッカー(その1)」に入力した際に「日時ピッカー(その2)」より前の日時が入力されているかを確認しています。

    Commentコメントを追加...

    1 回答

    1.  
      2
      1
      0

      関連QA

      2つの日付フィールドをチェックする方法はありますか?

      上記設定で私の手元の環境(JIRA 7.3.8 ScriptRunner 5.0.14) で確認すると

      以下のように問題ないようですが…以下のことであってますかね?

      Edit Issue _ SCRUM-1 - JIRA - Google Chrome 2017_08_29 17_51_30.mp4

      Chromeの開発ツールで、対象フィールドに値を入力したときに

      rest/com.onresolve.jira.plugin.Behaviours/1.0/behaviours/runvalidator.json

      のエンドポイントにリクエストされているか確認してみていただければと思います。

      実際にChrome開発ツールを見ていただければわかると思いますが

      ScriptRunner の behavioursの処理としては、JavaScript側の処理とサーバー側の処理の2つで成り立っており

      JavaScript側の処理では、対象フィールドの値が変更されると runvalidator.json のエンドポイントにその fieldNameとその時点のformをデータとしてPOSTして

       runvalidator.json のサーバー側の処理としてはサーバ側に設定した対象フィールドの Validation Script に設定した Groovyスクリプトが動き、その結果をJavaScriptに返却して、JavaScript側でエラーメッセージを表示するなどの処理が動きます。


      もし2つのフィールドがあり互いに比較するとした場合

      以下のようにBehaviour側で対象フィールドの2つの双方で Validation Script を設定する必要があります。

      片方のみ設定していると、そのフィールドを修正したときのみにしかチェックが動きません。

      あとはValidation Script に設定した Groovyスクリプト次第ですかね…

      よろしくお願いいたします。

        Commentコメントを追加...