Robin Robin - 1 year ago 146
Javascript Question

x-editable on shown event dropdown (<select />) source refresh

I'm trying to change a x-editable source data just before it is shown so that my dropdown menu entries are always fresh even if source changes.

Here is a link to explain:

// my source that can change over time
var source = [{'value': 1, 'text': 'fine'}, {'value': 2, 'text': 'bad'}];

'mode' : 'inline',
'source': source,

$('#my_select').on('shown', function(ev, editable) {
// now changing my source just before dropdown is shown
source = [{'value': 1, 'text': 'GOOD'}, {'value': 2, 'text': 'FU'}];

//$(editable).editable('option', 'source', source); NOT WORKING
//$('#my_select').editable('option', 'source', source); NOT WORKING
//$(this).editable('option', 'source', source); NOT WORKING

any idea?

Jan Jan
Answer Source

I do not see it in the documentation, but you can pass a function to the source parameter like this:

var source = [{'value': 1, 'text': 'fine'}, {'value': 2, 'text': 'bad'}];

    'mode'  : 'inline',
    'source': function() {
        return source;

This way it always uses the updated source array. I updated your fiddle:

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download