私はJenkins Builderを書いています。ビルド構成ページの構成用のゼリースクリプトには、フォームがロードされたときに実行したいJavascriptがいくつかあり、サーバールックアップを行い、ユーザーを支援するための情報を取得しますこれは、ユーザーがフォームの値を変更したときにも実行されます。
以前はthis
、関数onchange
またはonkeyup
属性に渡すことで、フォーム要素への参照を取得していました。ただし、フォームが変更されていない場合でも、スクリプトを実行したいと考えています。
フォーム要素に ID 属性を設定できることはわかっていますが、ユーザーがこのビルダーを使用して 2 つのビルド ステップをビルドに追加すると、うまくいきません。
ビルダークラスでランダムIDを生成しようとしましたが、それを使用して要素のIDを作成し、それをゼリーファイルのJavascriptに書き込んで、それらの要素を見つけられるようにしましたが、ユーザーが保存するため、ユーザーがジョブを保存せずにこのビルダーの 2 つのインスタンスを追加すると機能しません。
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
<f:entry title="Entry 1">
<f:textbox field="field1" id="${instance.id}-field1" onchange="fieldChanged('${instance.id}-field1')"/>
</f:entry>
<script type="text/javascript">
function fieldChanged(elementId) {
...
}
fieldChanged('${instance.id}-field1');
</script>
</j:jelly>
この種のことを行う方法に関する規則はありますか? 独自の要素を参照できる同じゼリー ファイルの複数のインスタンスをサポートするために、Jenkins/jelly に組み込まれているものはありますか?