1

我想将用户输入的值使用到受自动完成小部件影响的输入中,希望以下内容对我想要实现的目标不言自明:

source: $(this).val()

我认为$(this).val()这行不通,因为 source 需要一个对象?

我是 JavaScript 新手,谢谢。

$(".myinput").autocomplete({
    source:$(this).val()
});
4

1 回答 1

1

我认为您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事件可能对此有所帮助。)

于 2012-11-12T18:23:46.037 回答