最初は、テーブルには 1 つのみtr
(ラベル/ヘッダー) があり、add
ボタンをクリックすると、次のように新しいものが作成tr
されます。および他のすべての結果のクリックはadd
、最後の を複製しますtr
。
<tr>
<script type="text/javascript">
//fetch the value of select picker control and set into hidden field.
AJS.$('#' + '${field_uid}-resourcetypepicker-new1').change(function () {
AJS.$('#' + '${field_uid}-resourcetype-new1').val(AJS.$(this).attr('value'));
});
//fetch the value of select picker control and set into hidden field.
AJS.$('#' + '${field_uid}-locationpicker-new1').change(function () {
console.log(AJS.$(this).attr('value'));
AJS.$('#' + '${field_uid}-location-new1').val(AJS.$(this).attr('value'));
});
</script>
<td>
<input id="${field_uid}-resourcetype-new1"
name="${field_uid}"
type="hidden"
value="$r.getResourceType()" />
<select id="${field_uid}-resourcetypepicker-new1">
<option value="adad" #if ($r.getResourceType() == "adad") selected="selected"#end >adad</option>
<option value="dada" #if ($r.getResourceType() == "dada") selected="selected"#end >dada</option>
<option value="aadd" #if ($r.getResourceType() == "aadd") selected="selected"#end >aadd</option>
</select>
</td>
<td>
<input id="${field_uid}-location-new1"
name="${field_uid}"
type="hidden"
value="$r.getLocation()" />
<select id="${field_uid}-locationpicker-new1">
<option value="Internal(Local)" #if ($r.getLocation() == "Internal(Local)") selected="selected"#end >Internal(Local)</option>
<option value="Contractor(Local)" #if ($r.getLocation() == "Contractor(Local)") selected="selected"#end >Contractor(Local)</option>
<option value="Contractor(Offshore)" #if ($r.getLocation() == "Contractor(Offshore)") selected="selected"#end >Contractor(Offshore)</option>
</select>
</td>
<td>
<input id="${field_uid}-rate-new1"
name="${field_uid}"
type="text"
value="$r.getRate()" /> <!-- $textutils.htmlEncode($r.getRate()) -->
</td>
<td>
<input id="${field_uid}-effort-new1"
name="${field_uid}"
type="text"
value="$r.getEffort()" />
</td>
</tr>
問題: 上記のもので、特定のコントロール ID を指す既存の JavaScript'#' + '${field_uid}-resourcetypepicker-new1'
は (レンダー ID が のように見えるcustomfield-id-111-new1
) ことを意味します。ここで、問題は、各クローン行がselect/picker list
制御用に異なる一意の ID を持つことです。この JavaScript は、最初の行コントロールのみを としてポイントしAJS.$('customfield-id-111-new1')
ます。AJS.$('customfield-id-111-new2')
しかし、それは次の行にあるはずAJS.$('customfield-id-111-new3')
です。
では、最初の行のコントロールのみを指すのではなく、複製された各コントロールを指すことができるjqueryの下に記述する最良の方法は何ですか? tr
参照制御またはその他の方法を介して任意の方法。
AJS.$('#' + '${field_uid}-resourcetypepicker-new1').change(function () {
AJS.$('#' + '${field_uid}-resourcetype- new1').val(AJS.$(this).attr('value'));
});
また、クローンされた行には、この javascript が含まれていませんでした。クローンの後に追加する必要がありますか?
さらに詳細が必要な場合はお知らせください。
注:AJS.$
は に等しい$
です。JIRA のベロシティ テンプレート ファイルで使用されます。
ありがとうございました