jQueryでセレクトボックス(multiple)間の移動
jQueryでセレクトボックス(multiple)間のアイテムの移動を行う実装方法をご紹介します。
- ※ ソート機能などはありません。
デモ
|
サンプルコード
HTML
<select name="list1" size="5" multiple="multiple">
<option value="項目1">項目1</option>
<option value="項目2">項目2</option>
<option value="項目3">項目3</option>
<option value="項目4">項目4</option>
<option value="項目5">項目5</option>
<option value="項目6">項目6</option>
<option value="項目7">項目7</option>
<option value="項目8">項目8</option>
<option value="項目9">項目9</option>
<option value="項目10">項目10</option>
</select>
<select name="list2" size="5" multiple="multiple"></select>
<button type="button" id="to_right">»</button><
<button type="button" id="to_left">«</button>
JavaScript
$(function() {
/**
* 項目を移動する
* @param {string} source 移動元のname属性値
* @param {string} target 移動先のname属性値
*/
var move = function(source, target) {
// 移動元で選択されている項目要素を取得し繰り返す
$('select[name=' + source + '] option:selected').each(function() {
// 対象の項目要素を移動先へ複製
$('select[name=' + target + ']').append($(this).clone());
// 対象の項目要素を削除
$(this).remove();
});
};
// 右へ移動するボタンを押した時
$('#to_right').on('click', function() {
move('list1', 'list2');
});
// 左へ移動するボタンを押した時
$('#to_left').on('click', function() {
move('list2', 'list1');
});
});