jQuery 自动完成适用于本地字符串,但当从服务器调用相同的字符串时则不起作用

标签 jquery servlets autocomplete

这与我在 How to make an AJAX call immediately on document loading 提出的问题有关

我正在尝试获取由 | 分隔的字符串来自服务器的字符用作 jQuery 的 .autocomplete() 插件的输入。如果我在代码中声明了一个局部变量,那么它可以正常工作,但是如果我尝试使用对服务器的 ajax 调用来定义此变量,即使警报显示我已使用以下命令填充变量“dataArray”,它也不起作用完全相同的字符。

我的代码(不起作用)是:

$(document).ready(function(){
    $.ajax({
        type: "GET",
        url: "../AutoComplete",
        success: function(data) {
            var dataArray = data;
            alert(dataArray);
            $("#example").autocomplete(dataArray);
        }
    });
});

警报中打印的值为:

"Manuscript|Text|Information Object|Basketball|Ball|Sporting Equipment|Tarantula|Spider|Australian Spider|Cricket Player|Medieval Artefact|Person|Sportsperson|Leonardo Da Vinci|Country|Language|Inventor|Priest|Electronics Manufacturer|Object|letter|Artefact|governance model|Organism|Animal".split("|");

如果我这样做(尽管这不是解决方案):

$(document).ready(function(){
        $.ajax({
            type: "GET",
            url: "../AutoComplete",
            success: function(data) {
                var dataArray = "Manuscript|Text|Information Object|Basketball|Ball|Sporting Equipment|Tarantula|Spider|Australian Spider|Cricket Player|Medieval Artefact|Person|Sportsperson|Leonardo Da Vinci|Country|Language|Inventor|Priest|Electronics Manufacturer|Object|letter|Artefact|governance model|Organism|Animal".split("|");                  
                alert(dataArray);
                $("#example").autocomplete(dataArray);
            }
        });
    });

自动完成功能正常吗?

最佳答案

不要将拆分放入 ../AutoComplete 脚本的输出中。另外,去掉引号。

换句话说,让 ../AutoComplete 返回:

Manuscript|Text|Information Object|Basketball|Ball|Sporting Equipment|Tarantula|Spider|Australian Spider|Cricket Player|Medieval Artefact|Person|Sportsperson|Leonardo Da Vinci|Country|Language|Inventor|Priest|Electronics Manufacturer|Object|letter|Artefact|governance model|Organism|Animal

然后,执行:

dataArray = data.split("|");

关于jQuery 自动完成适用于本地字符串,但当从服务器调用相同的字符串时则不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2803589/

相关文章:

javascript - 获取页面以正常工作

javascript - jQuery slideUp().remove() 在删除发生之前似乎没有显示 slideUp 动画

javascript - Contenteditable div 文本被添加到 span 元素中而不是外部

java - 如何使用JSP/Servlet将文件上传到服务器?

emacs - 如何在 Emacs Org-babel 中启用自动完成?

angular - 有没有办法禁用自动完成输入? - Angular Material

Jquery 处理从 ajax 附加值

javascript - 在 html 或 javascript 中进行更改后无需重新启动服务器。为什么?

Java 代码在 App 中运行,而不是在 Servlet 中运行

javascript - 将 Google Places Autocomplete 与动态文本框结合使用