1

カスタム フィールド プラグインの開発では、以下のように表示されるカスタム フィールドを作成します (複数の入力フィールドがあります)。

カスタムフィールド名:<Input Textbox> <Input Textbox> <Input Textbox> <sum of input 1,input 2 & input 2>

プラグインを作成するために、JIRA でカスタム フィールドを作成するチュートリアルに従っています。

以下、追加の2つのテキスト入力を含めるために以下のように更新edit.vmしましたが、機能しませんでした...追加のテキストボックスを表示するだけです...(他の変更が必要かどうかわかりません)。

 #customControlHeader ($action $customField.id $customField.name $fieldLayoutItem.required     $displayParameters $auiparams)
 <input class="text" id="$customField.id" name="$customField.id" type="text"     value="$textutils.htmlEncode($!value)" /><input class="text" id="$customField.id"     name="$customField.id" type="text" value="$textutils.htmlEncode($!value)" /><input class="text"    id="$customField.id" name="$customField.id" type="text" value="$textutils.htmlEncode($!value)" />
#customControlFooter ($action $customField.id $fieldLayoutItem.fieldDescription     $displayParameters $auiparams)

カスタムフィールド内に追加のフィールドを作成し、異なる値を保持してそれらの合計を取得するために、これを更新する方法を教えてください。

4

2 に答える 2

2

もう 1 つの方法は、クライアント側でフィールドを生成することです。必要なフォーム フィールドを追加するコードをカスタム フィールドに追加できます。たとえば、2 つの単純な入力を追加するには、次のスクリプトを使用します。

<script type="text/javascript">
    var table = AJS.$('<table>').append(
            AJS.$('<tr>').append(
                AJS.$('<td>',{text:'first'})
            ).append(
                AJS.$('<td>',{class:'myinput'}).html(AJS.$('<input>'))
            )
        ).append(
            AJS.$('<tr>').append(
                AJS.$('<td>',{text:'second'})
            ).append(
                AJS.$('<td>',{class:'myinput'}).html(AJS.$('<input>'))
            )
        );
    AJS.$("input#customfield_10001").before(table)
</script>

フォーム コンテンツを取得する小さな関数を作成します。

function collect_data() {
    var content = AJS.$(".myinput input").map(function() {return this.value});
    var json = '{"first":"'+content[0]+'","second":"'+content[1]+'"}';
    AJS.$("input#customfield_10002").val(json);
}

最後に、すべての変更に関する最新情報を収集します。

AJS.$(".myinput").on('input',function(){ 
    collect_data();
});

これを使用する場合は、すべてのフィールド ID を更新し、必要に応じて入力フィールドを変更し、フォーム作成コードを変更して、選択した値が入力に入力されるようにします。

さらに情報が必要な場合はお知らせください。

于 2013-06-20T16:21:11.513 に答える