Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改自动完成小部件的源_Javascript_Jquery_Jquery Ui_Jquery Autocomplete - Fatal编程技术网

Javascript 更改自动完成小部件的源

Javascript 更改自动完成小部件的源,javascript,jquery,jquery-ui,jquery-autocomplete,Javascript,Jquery,Jquery Ui,Jquery Autocomplete,我对jquery自动完成小部件有一个奇怪的问题。 首先,我有一个“select”HTML元素,它显示所有项目。 我还有一个输入元素,可以在其中搜索与所选项目相对应的问卷 所以我有这个代码: 一切都很好。但我的问题是当我用F5而不是Ctrl+F5刷新页面时:选择框的上一个选项始终处于选中状态,因此我想更改自动完成小部件的源代码,我向您展示的代码应该这样做 但是,除非我在$'search-Questionly'前面添加了一个警报,否则源不会更改。自动完成'option','source',data;

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

所以我有这个代码:

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

但是,除非我在$'search-Questionly'前面添加了一个警报,否则源不会更改。自动完成'option','source',data;:

所以我不明白。是虫子吗


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

我没有测试您的代码,但从外观上看,这是一个时间问题。我在Javascript中多次遇到过这种情况。要解决此问题,请尝试使用0毫秒的设置超时:

而不是

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


让我知道这是怎么回事。

这个问题有用吗:?显然我不这么认为:
$('#search-questionnaire').autocomplete('option', 'source', data);
setTimeout(function() {
    $('#search-questionnaire').autocomplete('option', 'source', data);
}, 0)