<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="./jquery.tgHierSelectV2/jquery.tgHierSelectV2.js"></script>
<script>
$(document).ready(function(){
// 連動プルダウンオプション
$(this).tgHierSelectV2({
group: 'group1',
maxLevel: '2',
defaultSelect: '選択してください',
});
// 処理対象のオブジェクト配列
var employees = [
{"id":"1","gender_id":"1","blanch_id":"1","department_id":"1","section_id":"1","name":"志賀貞一"},
{"id":"1","gender_id":"2","blanch_id":"2","department_id":"1","section_id":"1","name":"安田志歩"},
{"id":"1","gender_id":"1","blanch_id":"3","department_id":"1","section_id":"1","name":"村岡総一朗"},
{"id":"1","gender_id":"2","blanch_id":"4","department_id":"1","section_id":"1","name":"宇野直美"},
{"id":"1","gender_id":"2","blanch_id":"5","department_id":"1","section_id":"1","name":"亀田遥華"},
{"id":"1","gender_id":"1","blanch_id":"6","department_id":"1","section_id":"1","name":"庄司照雄"},
{"id":"1","gender_id":"1","blanch_id":"7","department_id":"1","section_id":"1","name":"小谷光信"},
{"id":"1","gender_id":"1","blanch_id":"1","department_id":"2","section_id":"2","name":"松木博道"},
{"id":"1","gender_id":"2","blanch_id":"2","department_id":"2","section_id":"2","name":"小久保雪絵"},
{"id":"1","gender_id":"2","blanch_id":"3","department_id":"2","section_id":"3","name":"矢野風花"},
{"id":"1","gender_id":"1","blanch_id":"4","department_id":"2","section_id":"3","name":"塚本長太郎"},
{"id":"1","gender_id":"1","blanch_id":"5","department_id":"2","section_id":"2","name":"田渕勝巳"},
{"id":"1","gender_id":"1","blanch_id":"6","department_id":"2","section_id":"2","name":"島津一憲"},
{"id":"1","gender_id":"2","blanch_id":"7","department_id":"2","section_id":"3","name":"河井澪"},
{"id":"1","gender_id":"1","blanch_id":"1","department_id":"1","section_id":"1","name":"森口明仁"},
{"id":"1","gender_id":"1","blanch_id":"2","department_id":"1","section_id":"1","name":"西口裕史"},
{"id":"1","gender_id":"2","blanch_id":"3","department_id":"1","section_id":"4","name":"三上美智子"},
{"id":"1","gender_id":"2","blanch_id":"4","department_id":"1","section_id":"4","name":"塚田順子"},
{"id":"1","gender_id":"1","blanch_id":"5","department_id":"1","section_id":"1","name":"小平兼吉"},
{"id":"1","gender_id":"2","blanch_id":"6","department_id":"1","section_id":"1","name":"石沢里歌"},
{"id":"1","gender_id":"1","blanch_id":"7","department_id":"1","section_id":"1","name":"片野哲史"},
{"id":"1","gender_id":"1","blanch_id":"3","department_id":"3","section_id":"5","name":"岡村肇"},
{"id":"1","gender_id":"1","blanch_id":"3","department_id":"3","section_id":"5","name":"新田一寿"},
{"id":"1","gender_id":"2","blanch_id":"3","department_id":"3","section_id":"6","name":"本田茉央"},
{"id":"1","gender_id":"1","blanch_id":"4","department_id":"3","section_id":"5","name":"唐沢信長"},
{"id":"1","gender_id":"1","blanch_id":"4","department_id":"3","section_id":"6","name":"柏木勇"},
{"id":"1","gender_id":"1","blanch_id":"4","department_id":"3","section_id":"6","name":"亀田裕次郎"},
{"id":"1","gender_id":"2","blanch_id":"3","department_id":"3","section_id":"7","name":"竹本早紀"},
{"id":"1","gender_id":"1","blanch_id":"3","department_id":"3","section_id":"7","name":"吉村正"},
{"id":"1","gender_id":"1","blanch_id":"3","department_id":"3","section_id":"7","name":"碓井恒雄"}];
pd1Val = 0;
pd2Val = 0;
//
$('#lv1, #lv2').change(function() {
// プルダウン選択値
pd1Val = $('#lv1').val();
pd2Val = $('#lv2').val();
if (pd1Val != 0 && pd2Val != 0) {
$("#list2").html("");
// 社員指定→全て
if (pd1Val == 1 && pd2Val == 1) {
// <option value>作成
for (var i=0; i<employees.length; i++) {
$("#list2").append("<option value="+employees[i].id+">"+employees[i].name+"</option>");
}
} else {
// 社員指定以外
if (pd1Val != 0) {
// フィルタ
var filtered = $.grep(employees,
function(elem, index) {
if (pd1Val == 2) {
// gender_idプロパティの値でフィルター
return (elem.gender_id == pd2Val);
} else if (pd1Val == 3) {
// blanch_idプロパティの値でフィルター
return (elem.blanch_id == pd2Val);
} else if (pd1Val == 4) {
// department_idプロパティの値でフィルター
return (elem.department_id == pd2Val);
} else if (pd1Val == 5) {
// section_idプロパティの値でフィルター
return (elem.section_id == pd2Val);
}
}
);
// <option value>作成
for (var i=0; i<filtered.length; i++) {
$("#list2").append("<option value="+filtered[i].id+">"+filtered[i].name+"</option>");
}
}
}
} else {
if (pd1Val == 0) {
$('#lv2').attr("disabled", "disabled"); // (B)をdisabledにする
}
$("#list2").html(""); // 宛先(右)をクリア
}
});
// 左右フォーム
$('input[name=add]').on('click', function() {
move('list2', 'list1');
});
$('input[name=del]').on('click', function() {
move('list1', 'list2');
});
var move = function(_this, target) {
$('select[name=' + _this + '] option:selected').each(function() {
$('select[name=' + target + ']').append($(this).clone());
$(this).remove();
});
};
});
</script>