我想将用户输入的值使用到受自动完成小部件影响的输入中,希望以下内容对我想要实现的目标不言自明:
source: $(this).val()
我认为$(this).val()
这行不通,因为 source 需要一个对象?
我是 JavaScript 新手,谢谢。
$(".myinput").autocomplete({
source:$(this).val()
});
我想将用户输入的值使用到受自动完成小部件影响的输入中,希望以下内容对我想要实现的目标不言自明:
source: $(this).val()
我认为$(this).val()
这行不通,因为 source 需要一个对象?
我是 JavaScript 新手,谢谢。
$(".myinput").autocomplete({
source:$(this).val()
});
我认为您source
错误地使用了 jQuery UI 自动完成的参数。 $(this).val()
将从 DOM 对象中获取当前值$(this)
(假设这就是它所指向的)。
相反,该source
参数应该指向输入可能完成的来源。作为jQuery UI 网站的示例
$(function() {
var availableTags = ["ActionScript", "AppleScript", "Asp", "BASIC",
"C", "C++", "Clojure", "COBOL", "ColdFusion", "Erlang"];
$( "#tags" ).autocomplete({
source: availableTags
});
});
从这个例子中你可以看到,source
指向一个可能的标签值数组,当用户开始输入时,这些值将自动完成。
为了解决我对OP问题的新理解:
要将用户的当前条目添加到自动完成中,您可以使用如下代码:
$( "#tags" ).autocomplete("option","source",
availableTags.concat($("#tags").val()));
每次输入更改时都需要调用它(使用keypress
事件可能对此有所帮助。)