2
1
0
1 回答
- 10-1
恐らくですが、フィールドに値が入力されている状態ではエラーを解除する必要があるので
clearError が足りてないだけなのかと思います。
以下の通りではでどうでしょうか?
def targetField = getFieldById("customfield_10000"); def targetFieldValue = targetField.getValue(); if (targetFieldValue == null) { targetField.setError("入力情報はありません") } else { targetField.clearError(); }
参考QA
- 釜谷 宙
ご回答ありがとうございます。
ご提示いただいた内容でスクリプトを修正しましたが、
状況は改善されませんでした。
確かに該当フィールドに値は入っているのに、
そのフィールドの下に「入力情報はありません」と表示されてしまいます。
- 釜谷 宙
参考QAを参考にして、
targetField.getValue() を (String)targetField.getValue()
に変更したら値を拾えるようになりました。
ご回答ありがとうございました。
- Kengo Ohsaki
Initialiser Function に設定していませんでしょうか?
Initialiser Function はフォームが表示された初回にしか動作しないスクリプトなので今回のような値チェックする場合は対象Fieldを追加して、そのFieldの Validation Script に以下スクリプトを設定すれば期待する挙動が確認できました。
def targetField = getFieldById("customfield_10000"); def targetFieldValue = targetField.getValue(); if (targetFieldValue == null || ((String)targetFieldValue).isEmpty()) { targetField.setError("入力情報はありません") } else { targetField.clearError(); }
コメントを追加...
下記のコードをScriptRunner の Behavioursで設定してして、
「customfield_10000」のフィールドが空欄の場合に
エラーを出したいと思っています。
しかし、「customfield_10000」のフィールドに値が入力されている状態でも、
「"入力情報はありません"」というメッセージが表示されてしまいます。
何かやり方が間違っているのでしょうか。
どなたかご教示ください。
def targetField = getFieldById("customfield_10000");
def targetFieldValue = targetField.getValue();
if (targetFieldValue == null) {
targetField.setError("入力情報はありません")
}