フォームの非表示フィールドに配置する配列を作成する jquery/javascript 関数があります。ただし、これはネストされたフォームであるため、この関数を何度も呼び出して、すべての子の非表示フィールドに入力する必要があります: test_suite_run[test_runs_attributes][//id][packages_id]
. これは、毎回異なる子 ID でこの関数を実行する必要があることを意味します。
//id
多くの関数呼び出しの唯一の違いを示すために追加しました。ネストされた子インスタンスごとに、手動で何度もコピーして //id をインデックス 0...n に置き換えずに、この関数を複製する方法がわかりません。パラメータをjavascript関数に渡すことで、これを何らかの形で行うことができますか?
これが少し紛らわしい場合は申し訳ありませんが、必要に応じてより詳細に説明させていただきます。
JQuery 関数
$(document).ready(function () {
arr = new Array();
$(document).on('change', 'select[id ^="s_package//id"]', function () {
var arr = $('select[id ^="s_package//id"]').map(function () {
return this.value
})
result = ""
for (j = 0; j < arr.length - 1; j++) {
result += (arr[j] + ", ");
}
result += (arr[arr.length - 1])
$("input[name='test_suite_run[test_runs_attributes][//id][packages_id]']").val(result);
});
});