Jquery自动完成多个单词

时间:2012-10-12 09:21:50

标签: jquery jquery-ui

我正在研究jquery,我有一个带有自动完成功能的文本框,它适用于单个单词,但是当我在该文本框中输入第二个单词时,第一个单词就会失败。

假设首先输入 Java 然后 Java Script ,第一个 Java 将从文本框中消失。

这是代码,

<script>
$("#tag").autocomplete( {
    source: "http://localhost:8080/autocomp",
        multiple: true,
        mustMatch: true,
        autoFill: true
    });
</script>

Textbox应包含 Java Javascript

等文字

2 个答案:

答案 0 :(得分:0)

你的问题是来源。 来源:“http:// localhost:8080 / autocomp”

尝试将值添加到变量中或以不同的方式获取源。

答案 1 :(得分:0)

我知道这是一个古老的问题但是当我遇到同样的问题时,它在搜索排名中名列前茅。这在jQuery&gt;中得到支持。 1.8。 Their example是:

<script>
$(function () {
    var availableTags = [
        "ActionScript",
        "AppleScript",
        "Asp",
        "BASIC",
        "C",
        "C++",
        "Clojure",
        "COBOL",
        "ColdFusion",
        "Erlang",
        "Fortran",
        "Groovy",
        "Haskell",
        "Java",
        "JavaScript",
        "Lisp",
        "Perl",
        "PHP",
        "Python",
        "Ruby",
        "Scala",
        "Scheme"];

    function split(val) {
        return val.split(/,\s*/);
    }

    function extractLast(term) {
        return split(term).pop();
    }
    $("#tags")
    // don't navigate away from the field on tab when selecting an item
    .bind("keydown", function (event) {
        if (event.keyCode === $.ui.keyCode.TAB && $(this).data("ui-autocomplete").menu.active) {
            event.preventDefault();
        }
    })
        .autocomplete({
        minLength: 0,
        source: function (request, response) {
            // delegate back to autocomplete, but extract the last term
            response($.ui.autocomplete.filter(
            availableTags, extractLast(request.term)));
        },
        focus: function () {
            // prevent value inserted on focus
            return false;
        },
        select: function (event, ui) {
            var terms = split(this.value);
            // remove the current input
            terms.pop();
            // add the selected item
            terms.push(ui.item.value);
            // add placeholder to get the comma-and-space at the end
            terms.push("");
            this.value = terms.join(", ");
            return false;
        }
    });
});
</script>

我已经对此进行了测试,但确实有效。