【问题标题】:Changing the source of an autocomplete widget更改自动完成小部件的来源
【发布时间】:2011-09-06 12:20:57
【问题描述】:

我在使用 jquery 自动完成小部件时遇到了一个奇怪的问题。 首先,我有一个显示所有项目的“选择”HTML 元素。 我还有一个输入元素,我可以在其中搜索与所选项目相对应的问卷。

所以我有这个代码:http://jsfiddle.net/AMkKX/1/

一切都很好。但是我的问题是当我刷新页面时(使用 F5,而不是 Ctrl+F5):始终选择选择框的先前选择,因此我想更改自动完成小部件的源(我向您展示的代码应该这样做)

但是除非我在$('#search-questionnaire').autocomplete('option', 'source', data); 之前发出警报,否则来源不会改变:

$('#search-project').change(function () {
    var data;
    var val = $(this).val();

    alert('val : ' + val);

    if (val != '')
        data = questionnairesData[val];
    else
        data = allQuestionnairesData;

    $('#search-questionnaire').autocomplete('option', 'source', data);
});

所以我不明白。是bug吗?

编辑:我无法使用 jsfiddle 向您展示“F5 刷新”。如果你想测试它,你必须复制代码并在你的导航器中使用它。

【问题讨论】:

标签: javascript jquery jquery-ui jquery-autocomplete


【解决方案1】:

我没有测试你的代码,但从它的外观来看,这是一个时间问题。我在Javascript中遇到过几次。要解决这个问题,请尝试使用 0 毫秒的 setTimeout:

代替

$('#search-questionnaire').autocomplete('option', 'source', data);

试试:

setTimeout(function() {
    $('#search-questionnaire').autocomplete('option', 'source', data);
}, 0)

让我知道这是怎么回事。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-04
    • 2013-08-28
    • 1970-01-01
    • 2011-06-04
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多