44 lines
1.1 KiB
JavaScript
44 lines
1.1 KiB
JavaScript
/*
|
|
* bootstrap-select.js
|
|
*/
|
|
|
|
(function($) {
|
|
|
|
'use strict'; // jshint ;_;
|
|
|
|
$.fn.dropSelect = function(option) {
|
|
return this.each(function() {
|
|
|
|
var $this = $(this);
|
|
var display = $this.find('.dropdown-display'); // display span
|
|
var field = $this.find('input.dropdown-field'); // hidden input
|
|
var options = $this.find('ul.dropdown-menu > li > a');// select options
|
|
|
|
// when the hidden field is updated, update dropdown-toggle
|
|
var onFieldChange = function(event) {
|
|
var val = $(this).val();
|
|
var displayText = options.filter("[data-value='" + val + "']").html();
|
|
display.html(displayText);
|
|
};
|
|
|
|
// when an option is clicked, update the hidden field
|
|
var onOptionClick = function(event) {
|
|
// stop click from causing page refresh
|
|
event.preventDefault();
|
|
field.val($(this).attr('data-value'));
|
|
field.change();
|
|
};
|
|
|
|
field.change(onFieldChange);
|
|
options.click(onOptionClick);
|
|
|
|
});
|
|
};
|
|
|
|
// invoke on every div element with 'data-select=true'
|
|
$(function() {
|
|
$('div[data-select=true]').dropSelect();
|
|
});
|
|
|
|
})(window.jQuery);
|