Javascript 添加空间时自动完成不工作

Javascript 添加空间时自动完成不工作,javascript,jquery,autocomplete,Javascript,Jquery,Autocomplete,在我的项目中,我尝试使用以下插件创建自动完成效果: 这个插件工作正常,直到我没有在我的文本框中添加空间(在添加一个单词之后)。当我使用退格删除输入的单词时,自动完成显示的是之前应该显示的列表 PS:每次我通过ajax调用将文本字段的全文传递给服务器时,这在我的应用程序中是必要的 这是我的密码: (由于ajax url而无法工作) JS $(function () { var result = $('#result'); var contents = { val

在我的项目中,我尝试使用以下插件创建自动完成效果:

这个插件工作正常,直到我没有在我的文本框中添加空间(在添加一个单词之后)。当我使用退格删除输入的单词时,自动完成显示的是之前应该显示的列表

PS:每次我通过ajax调用将文本字段的全文传递给服务器时,这在我的应用程序中是必要的

这是我的密码:

(由于ajax url而无法工作)

JS

$(function () {

    var result = $('#result');
    var contents = {
        value: "",
        data: ""
    };
    /* Ajax call */
    result.keydown(function (event) {
        if (!event.shiftKey) {
            var sugData;
            var text = result.val(); //.split(" ").pop();
            //console.log(text);
            /* Send the data using post and put the results in a div */
            $.ajax({
                url: "http://localhost:9999/projects/1/autocomplete/suggestions",
                type: "POST",
                data: "drqlFragment=" + text, // + "  ",
                //data: "drqlFragment=when node_database_property  ",
                async: false,
                cache: false,
                headers: {
                    accept: "application/json",
                    contentType: "application/x-www-form-urlencoded"
                },
                contentType: "application/x-www-form-urlencoded",
                processData: true,
                success: function (data, textStatus, jqXHR) {
                    var resData = data.suggestions;
                    //console.dir(resData);
                    for (var i = 0; i < resData.length; i++) {
                        resData[i].value = resData[i].keyword;
                    }
                    sugData = resData;
                    //console.dir(sugData);
                },
                error: function (response) {
                    //console.dir(response);
                    $("#result").val('there is error while submit');
                }
            });
            console.dir(sugData);
            $('#result').autocomplete({
                lookup: sugData
            });
        }
    });
});
$(函数(){
var result=$(“#result”);
变量内容={
值:“”,
数据:“”
};
/*Ajax调用*/
结果键控(功能(事件){
如果(!event.shiftKey){
var-sugData;
var text=result.val();//.split(“”.pop();
//console.log(文本);
/*使用post发送数据,并将结果放入div中*/
$.ajax({
url:“http://localhost:9999/projects/1/autocomplete/suggestions",
类型:“POST”,
数据:“drqlFragment=“+text,//+”,
//数据:“drqlFragment=when节点\数据库\属性”,
async:false,
cache:false,
标题:{
接受:“应用程序/json”,
contentType:“application/x-www-form-urlencoded”
},
contentType:“application/x-www-form-urlencoded”,
processData:对,
成功:函数(数据、文本状态、jqXHR){
var resData=data.suggestions;
//console.dir(resData);
对于(var i=0;i
HTML

<form id="foo">
    <textarea id="result" rows="4" cols="50"></textarea>
    <input type="submit" value="Send" />
</form>


很抱歉,我无法向您提供json数据,因为每当我按键时,服务器都会对其进行修改。(因此,实际上它是服务器在ajax调用时返回的一个对象变量)。

每当我输入一个键时,ajax调用就会发生,它收集所需的数据并显示为自动完成建议。但是当我添加空间时,ajax调用返回所需的数据,但没有显示任何自动完成建议。后来,当我删除输入单词的两三个字符时,就会看到前面的自动完成建议。你能提供“建议”的代码吗function@SatpalSingh不
建议
没有空间,甚至我也无法提供与之相关的代码,因为每当我输入任何密钥时,服务器都会执行一些功能并返回一些数据作为响应。(ajax调用)。因此,问题与数据无关。我确信我在上面的代码中犯了一些错误,我无法理解。
建议
没有空间,那么他们将如何用空间过滤文本,据我所知,一切正常,因为您没有任何数据。只是为了好奇,做一些数据和测试it@SatpalSingh一切都发生在服务器端。如果您再次看到my code,您会发现内容类型是
“application/x-www-form-urlencoded”
,而不是
json
。我知道很难重现我的问题。