pickList Demo
A simple plugin for jQuery and Bootstrap
by Harsh Bhatnagar
HTML
<br>
<div class="container">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">PickList Demo</h3>
</div>
<div class="panel-body">
<div id="pickList"></div>
<br>
<br>
<button class="btn btn-primary" id="getSelected">Get Selected</button>
</div>
</div>
</div>
CSS
.pickListButtons {
padding: 10px;
text-align: center;
}
.pickListButtons button {
margin-bottom: 5px;
}
.pickListSelect {
height: 200px !important;
}
JavaScript
(function($) {
$.fn.pickList = function(options) {
var opts = $.extend({}, $.fn.pickList.defaults, options);
this.fill = function() {
var option = '';
$.each(opts.data, function(key, val) {
option += '<option id=' + val.id + '>' + val.text + '</option>';
});
this.find('#pickData').append(option);
};
this.controll = function() {
var pickThis = this;
$("#pAdd").on('click', function() {
var p = pickThis.find("#pickData option:selected");
p.clone().appendTo("#pickListResult");
p.remove();
});
$("#pAddAll").on('click', function() {
var p = pickThis.find("#pickData option");
p.clone().appendTo("#pickListResult");
p.remove();
});
$("#pRemove").on('click', function() {
var p = pickThis.find("#pickListResult option:selected");
p.clone().appendTo("#pickData");
p.remove();
});
$("#pRemoveAll").on('click', function() {
var p = pickThis.find("#pickListResult option");
p.clone().appendTo("#pickData");
p.remove();
});
};
this.getValues = function() {
var objResult = [];
this.find("#pickListResult option").each(function() {
objResult.push({
id: this.id,
text: this.text
});
});
return objResult;
};
this.init = function() {
var pickListHtml =
"<div class='row'>" +
" <div class='col-sm-5'>" +
" <select class='form-control pickListSelect' id='pickData' multiple></select>" +
" </div>" +
" <div class='col-sm-2 pickListButtons'>" +
" <button id='pAdd' class='btn btn-primary btn-sm'>" + opts.add + "</button>" +
" <button id='pAddAll' class='btn btn-primary btn-sm'>" + opts.addAll + "</button>" +
" <button id='pRemove' class='btn btn-primary btn-sm'>" + opts.remove + "</button>" +
" <button id='pRemoveAll' class='btn...