a※view_customizeプラグインを使用
//カスタムフィールドの値によって特定のフィールドの表示・非表示・値を設定する
パスのパターン | /* |
---|---|
プロジェクトのパターン | test01 |
挿入位置 | チケット入力欄の下 |
種別 | JavaScript |
//カスタムフィールドの値によって特定のフィールドの表示・非表示を設定する
$(function() {
const changeVisibility = function() {
switch($('#issue_custom_field_values_10').val()) {
case 'A':
$('#issue_custom_field_values_11').parent().show();
$('#issue_custom_field_values_12').parent().hide();
$('#issue_custom_field_values_11').val('Aが選択されました');
//alert('Aが選択されました');
break;
case 'B':
$('#issue_custom_field_values_11').parent().hide();
$('#issue_custom_field_values_12').parent().show();
$('#issue_custom_field_values_12').val('Bが選択されました');
//alert('Bが選択されました');
break;
default:
$('#issue_custom_field_values_11').parent().show();
$('#issue_custom_field_values_12').parent().show();
$('#issue_custom_field_values_11').val('test01');
$('#issue_custom_field_values_12').val('test02');
break;
}
}
changeVisibility ();
// 値が変わったタイミングで切り替え
$('#all_attributes').on('change', '#issue_custom_field_values_10', function(e) {
changeVisibility ();
});
// ステータス変更時などにDOMが差し替えられるので
// フォームの内容が書き変わるたびに表示切替
var _replaceIssueFormWith = replaceIssueFormWith;
replaceIssueFormWith = function(html){
_replaceIssueFormWith(html);
changeVisibility ();
};
});
---------------------------------------------------------------------------------------
別パターン
$(function() {
// 表示の切り替え
var changeVisibility = function() {
var visible = $('#issue_custom_field_values_5').val() == 'A';
if (visible) {
$('#issue_custom_field_values_2').parent().show();
$('.cf_2').show();
} else {
$('#issue_custom_field_values_3').parent().hide();
$('.cf_3').hide();
}
};
// 現時点のもので表示切替
changeVisibility();
// ステータスが変わったタイミングで切り替え
$('#all_attributes').on('change', '#issue_custom_field_values_5', function(e) {
changeVisibility();
});
// ステータス変更時などにDOMが差し替えられるので
// フォームの内容が書き変わるたびに表示切替
var _replaceIssueFormWith = replaceIssueFormWith;
replaceIssueFormWith = function(html){
_replaceIssueFormWith(html);
changeVisibility();
};
})