jQuery Selectric Selectric

Basic usage

Long item, lorem ipsum dolor sit amet, consectetur adipisicing elit. Velit, consectetur, repellat animi nam veniam tempora hic
  • Long item, lorem ipsum dolor sit amet, consectetur adipisicing elit. Velit, consectetur, repellat animi nam veniam tempora hic
  • Strawberries
  • Mango
  • Bananas
  • Watermelon
  • Apples
  • Grapes
  • Oranges
  • Pineapple
  • Peaches
  • Cherries
    • Group 1
    • Option 1.1
    • Group 2
    • Option 2.1
    • Option 2.2
    • Group 3
    • Option 3.1
    • Option 3.2
    • Option 3.3
$('select').selectric();

Get selected option value

Strawberries
  • Strawberries
  • Mango
  • Bananas
  • Watermelon
  • Apples
  • Grapes
  • Oranges
  • Pineapple
  • Peaches
  • Cherries

Current value: strawberries

// Cache the target element
var $selectValue = $('#select_value').find('strong');

// Get initial value
$selectValue.text($('#get_value').val());

// Initialize Selectric and bind to 'change' event
$('#get_value').selectric().on('change', function() {
  $selectValue.text($(this).val());
});

Set value

First option
  • First option
  • Second option
  • Third option

$('#set_value').selectric();

$('#set_first_option').on('click', function() {
  $('#set_value').prop('selectedIndex', 0).selectric('refresh');
});

$('#set_second_option').on('click', function() {
  $('#set_value').prop('selectedIndex', 1).selectric('refresh');
});

$('#set_third_option').on('click', function() {
  $('#set_value').prop('selectedIndex', 2).selectric('refresh');
});

Change options on the fly

Strawberries
  • Strawberries
  • Mango
  • Bananas
  • Watermelon
  • Apples
  • Grapes
  • Oranges
  • Pineapple
  • Peaches
  • Cherries

$('#dynamic').selectric();

$('#bt_add_val').click(function() {
  // Store the value in a variable
  var value = $('#add_val').val();

  // Append to original select
  $('#dynamic').append('<option>' + (value ? value : 'Empty') + '</option>');

  // Refresh Selectric
  $('#dynamic').selectric('refresh');
});

Callbacks

Strawberries
  • Strawberries
  • Mango
  • Bananas
  • Watermelon
  • Apples
  • Grapes
  • Oranges
  • Pineapple
  • Peaches
  • Cherries
// With events
$('#callbacks')
  .on('selectric-before-open', function() {
    alert('Before open');
  })
  .on('selectric-before-close', function() {
    alert('Before close');
  })
  // You can bind to change event on original element
  .on('change', function() {
    alert('Change');
  });

// Or, with plugin options
$('#callbacks').selectric({
  onOpen: function() {
    alert('Open');
  },
  onChange: function() {
    alert('Change');
  },
  onClose: function() {
    alert('Close');
  }
});

Populate via ajax request

Strawberries
  • Strawberries
  • Mango
  • Bananas
  • Watermelon
  • Apples
  • Grapes
  • Oranges
  • Pineapple
  • Peaches
  • Cherries
$.get('ajax.html', function(data) {
  $('#ajax').append(data).selectric();
});

<!-- File: ajax.html -->
<option value="strawberries">Strawberries</option>
<option value="mango">Mango</option>
<option value="bananas">Bananas</option>
<option value="watermelon">Watermelon</option>
<option value="apples">Apples</option>
<option value="grapes">Grapes</option>
<option value="oranges">Oranges</option>
<option value="pineapple">Pineapple</option>
<option value="peaches">Peaches</option>
<option value="cherries">Cherries</option>

Custom markup for items box

Select with icons
  • Select with icons
  • Firefox
  • Chrome
  • Safari
  • Internet Explorer
  • Opera
$('.custom-options').selectric({
      optionsItemBuilder: function(itemData) {
        return itemData.value.length ?
          '<span class="ico ico-' + itemData.value +  '"></span>' + itemData.text :
          itemData.text;
      }
});

.selectric-custom-options .ico {
  display: inline-block;
  vertical-align: middle;
  zoom: 1;
  *display: inline;
  height: 30px;
  width: 30px;
  margin: 0 6px 0 0;
  background: url(./img/browser-icons.png) no-repeat;
}

.selectric-custom-options .ico-chrome  { background-position: 0 0; }
.selectric-custom-options .ico-firefox { background-position: -30px 0; }
.selectric-custom-options .ico-ie      { background-position: -60px 0; }
.selectric-custom-options .ico-opera   { background-position: -90px 0; }
.selectric-custom-options .ico-safari  { background-position: -120px 0; }

Force render above

lorem
  • lorem
  • ipsum
  • dolor
$('select').selectric({ forceRenderAbove: true });

Force render below

lorem
  • lorem
  • ipsum
  • dolor
$('select').selectric({ forceRenderBelow: true });

Theme

Download CSS View RAW CSS