在显示的事件下拉列表(<select>)源刷新</select>上进行x-editable

时间:2013-12-31 14:02:35

标签: javascript jquery drop-down-menu x-editable

我正在尝试在显示之前更改x-editable源数据,以便即使源更改,我的下拉菜单条目也始终保持新鲜。

这是一个解释的链接:http://jsfiddle.net/XN7np/3/

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

$('#my_select').editable({
    '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
});

任何想法?

3 个答案:

答案 0 :(得分:7)

我在文档中没有看到它,但您可以将函数传递给source参数,如下所示:

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

$('#my_select').editable({
    'mode'  : 'inline',
    'source': function() {
        return source;
    },
});

这样它总是使用更新的源数组。我更新了你的小提琴: http://jsfiddle.net/XN7np/4/

答案 1 :(得分:0)

此行有效:

$('#my_select').editable('option', 'source', source);

你必须使用双引号来表示&#34;值&#34;和&#34;文字&#34;而不是单引号&#39;值&#39;&#39; text&#39;对于任何可编辑的源,例如source2:

 var source2 = [{"value": 1, "text": "fine111"}, {"value": 2, "text": "bad22"}];


 $('#change').click(function(e) {
    $('#my_select').editable('option', 'source', source2)
 });

将上面的代码复制到你的小提琴示例中,看看它是如何工作的。

答案 2 :(得分:0)

.catch<any[]>(this.handleError.bind(this));