2
1
0

カスタムフィールドの説明文にjavascriptを仕込んでおり、

課題作成、編集画面表示時に下記の方式でカスタムフィールドに設定を付与しています。

document.jiraform.customfield_★フィールド番号★.value = "デフォルト表示内容";

document.getElementById('customfield_★フィールド番号★').readOnly = true;

 

しかし、課題編集画面を更新した際にも上記のjavascriptが実行されているようで、

課題編集画面更新時に、コンソールログに下記の内容のエラーが出ていることを発見しました。

Failed to run init function: TypeError: Cannot read property 'customfield_★フィールド番号★' of undefined

 

課題作成、編集画面表示時にのみjavascriptを実行し、課題編集画面を更新時には実行しない方法はありますでしょうか。

 

ご教授お願いします。

    Commentコメントを追加...

    1 回答

    1.  
      1
      0
      -1

      例えば以下のような感じでしょうか?  

      <script>
      AJS.$(function () {
      	// ポップアップ画面
      	if (AJS.$("form[name=jiraform]").size() > 0) {
      		if (AJS.$("form[name=jiraform] input#customfield_10309").size() > 0) {
      			AJS.$("form[name=jiraform] input#customfield_10309").val("デフォルト表示内容");
      			AJS.$("form[name=jiraform] input#customfield_10309").attr("readonly", true);
      		}
      	} else if (AJS.$("form#issue-edit").size() > 0) { // 課題編集画面 (ポップアップではない)
      		if (AJS.$("form#issue-edit input#customfield_10309").size() > 0) {
      			AJS.$("form#issue-edit input#customfield_10309").val("デフォルト表示内容");
      			AJS.$("form#issue-edit input#customfield_10309").attr("readonly", true);
      		}
      	} else if (AJS.$("form#issue-create").size() > 0) { //課題作成画面 (ポップアップではない)
      		if (AJS.$("form#issue-create input#customfield_10309").size() > 0) {
      			AJS.$("form#issue-create input#customfield_10309").val("デフォルト表示内容");
      			AJS.$("form#issue-create input#customfield_10309").attr("readonly", true);
      		}
      	}
      });
      </script>

      (警告) customfield_10309 の部分は設定したいフィールド番号に読み替えてください。

      課題編集画面更新時に、コンソールログに下記の内容のエラーが出ていることを発見しました。

      Failed to run init function: TypeError: Cannot read property 'customfield_★フィールド番号★' of undefined

      おそらくポップアップの編集画面ではないときに起きることかと思いますが

      ポップアップの編集画面と、単独の課題編集画面では

      formのname属性が異なることが原因ですので上記例のように分岐されるのがよいかと思います。

      参考になりましたら幸いでございます。

        Commentコメントを追加...