我目前正在尝试使用存储在javascript变量中的源创建自动完成,但此变量可以由其他函数更新。所以,我想要的是,每次用户更新自动填充字段时,都会生成自动填充的source
字段。
以下是我使用的代码:
<head>
<script>
var availableTags = ['java', 'javascript']
// can be called anytime
var addToTags = function(str){availableTags.push(str)}
$(function() {
$( "#tags" ).autocomplete({
source: availableTags
});
});
</script>
</head>
<body>
<div class="ui-widget">
<label for="tags">Tags: </label>
<input id="tags" />
</div>
</body>
我是否需要执行类似回调的功能?
答案 0 :(得分:11)
存储在javascript变量中的源,但此变量可以由其他函数更新。
那应该是有用的。如果自动完成和更新功能都引用相同的数组,您可以随时按下新值,这将在下次评估数组时使用(例如,在按键上)。
我希望每次用户更新自动填充字段时,都会生成自动填充的源字段。
那是另一回事。是的,这需要一个回调函数来动态生成source
数组,但这很简单。看看the docs:
$( "#tags" ).autocomplete({
source: function(request, resolve) {
// fetch new values with request.term
resolve(availableTags);
}
});
答案 1 :(得分:3)
只需在addToTags
函数中添加重置调用即可自动完成:
var addToTags = function(str){
availableTags.push(str);
$( "#tags" ).autocomplete({
source: availableTags
});
}
答案 2 :(得分:1)
这是非常直接的
$( "#tags" ).autocomplete('option', 'source', availableTags)
在任何需要的地方设置availableTags数组