selectize.js - how can reference some property of the select element during load()?
Asked Answered
A

1

6

I'm using selectize.js:

  • I have a number of similar select boxes
  • Options are loaded dynamically from the server, during load()
  • The query made during .load() is unique to each select box. Eg, I'd like to have a .load() hit a different URL based on some property of the select box (eg, data-someproperty).

How can I do that? Code right now is almost identical to the Remote Source example from the Selectize docs.

$('.select-repo').selectize({
    valueField: 'url',
    labelField: 'name',
    searchField: 'name',
    create: false,
    ...
    load: function(query, callback) {
        if (!query.length) return callback();
        $.ajax({
            url: 'https://api.github.com/legacy/repos/search/' + encodeURIComponent(query),
            type: 'GET',
            error: function() {
                callback();
            },
            success: function(res) {
                callback(res.repositories.slice(0, 10));
            }
        });
    }
});

I tried checking out this during .load() but I can't see any reference to the original element.

Awlwort answered 17/1, 2014 at 15:24 Comment(0)
A
10

Found it:

Inside load(), access:

this.$input

To get a JQuery selection with the <select> element.

this.$input.data('whatever')

Would return data-whatever from the select

Awlwort answered 17/1, 2014 at 15:44 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.